2012-06-11 44 views
1

假設我們有一個用戶;一個用戶可以有多個孩子。Hibernate JPA:更新查詢(僅更新版本)即使根本沒有更改也會被解僱

現在,當我插入一個孩子;我打電話user.addChild(),以便坐在JVM中的用戶對象被更新..雖然實際上沒有任何更改用戶的數據庫記錄,因爲它是OneToMany。

當我檢查SQL;隨着插入到孩子;一個額外的查詢被炒魷魚:

update User set version=? where id=? and version=? 

任何想法爲什麼?以及如何解決這個問題

+0

你正在使用哪個版本的Hibernate?我記得之前我看到過這種行爲,並在更高版本中修復。 –

回答

4

它的行爲如指定,如果這是擁有雙向關係的一面。默認情況下,單向一對多使用連接表,並且還應該更新版本。在規範這個雜糅了下面的話:

所有非關係字段和屬性,並通過該實體擁有的所有關係
包括在版本檢查。
...
這包括在連接表中維護的擁有關係。

相關問題