SpringBoot中jpa批量插入的問題

說起來令人啼笑皆非。本來也是我對SpringBoot不太熟,現在處於學習的階段。公司最近做一個項目,我用SpringBoot架構好了,中間遇到兩個問題:

一是軟件內啓動老是提示註解工廠的錯誤,網上查了一下,原來是因爲 @Table註解的問題,把關於表名映射改到@Entity裏面就好了,因爲orm的類都是持久化插件生成好的,我以爲應該不會有這方面的問題,加之表太多,而且數據庫又總是不確定。我不願老做無用功,所以沒去改。後來自己寫了一個小demo,連上數據庫表,同樣的問題,改過來真的就解決了;

二就是批量插入時老是報session處理不同對象的問題,一直不明白爲什麼。還是在這個demo裏,做了幾種嘗試,由於hibernate是被層層封裝得比較嚴實,問題也不好查。我曾經嘗試過用Jdbc來替代jpa,結果成功了。因爲jdbc不存在session的問題。但是我也很想指導問題出在哪裏。想自己處理session,但是封裝了自己不知道怎麼能夠取出來。

今天在嘗試過程中,想到在hibernate中,保存和更新是由id來判斷的,會不會處理的時候id一樣了,所以纔會出錯。但是數據庫表中我命名是設置了自動增長的嘛。不過持久化插件做orm映射的時候沒有加相關注解。我還以爲@Id這個問題能夠解決呢。很隨意地把@GeneratedValue(strategy = GenerationType.AUTO)這個註解加到id字段上面,我暈了,竟然解決了。說到底,我還是太相信ide的那些插件了,看來很多時候還是得一是一二是二,不能偷懶,不能輕信開發環境。

記一筆,警示自己!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章