程式設計的過程免不了遇到各種錯誤,各種問題,而遇到問題,解決問題的這個過程我認為是最讓人興奮的事情。越棘手的問題,解決以後帶來的快感也越大。當一個問題你搞了一下午或者一天,甚至幾天,當你解決的那一刻你會覺得你又獲得了重生。甚至會感覺此時此刻整個世界都是你的。
啊哦,扯的有點遠了。言歸正傳,今天我們要說的是關於Hibernate的一些常見錯誤。大家都知道Java專案更新一個版本可能與之前的版本有很大的差別,變化有時會很大。比如struts1和struts2,再比如Spring3.x由原來的一個jar包拆分成了多個jar包。因此有時候版本衝突的問題會給我們帶來很大的麻煩。下面我們就說說使用Hibernate4.3.x需要注意的幾點。
錯誤一
錯誤資訊:javax.persistence.Table.indexes([Ljavax/persistence/Index
原因:Hibernate4.3不支援@table(name="tablename")
解決方案:使用@entity(name="tablename")代替@table(name="tablename")
錯誤二
錯誤資訊:javax.persistence.JoinColumn.foreignKey()Ljavax/persistence/ForeignKey
原因:Hibernate4.3在多對一對映的時候不能使用@JoinColumn
解決方案:只寫@ManyToOne
錯誤三
錯誤資訊:javax.persistence.OneToMany.orphanRemoval()Z
原因:javaee、ejb或junit的jar包與hibernate-jpa-2.0-api-1.0.0.Final.jar衝突
解決方案:檢視是否存在以上jar包,如果存在,去掉即可
有人說錯誤一可能是個bug,但是目前還沒有一個定論。錯誤二如果還有對應的@OneToMany,那麼就在該處@JoinColumn(name="對應實體_id")。
以上是近期在專案中遇到的一些問題,寫出來跟大家分享一下,希望可以幫到一些人,歡迎大家補充,我會將大家的反饋更新到博文中。