在Hibernate中,我有兩個實體類。休眠更新OneToMany
A類和B類
類A包含B類的列表
@Entity
class A{
@Id @GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
List<B> list; // ArrayList
}
@Entity
class B{
@Id @GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
}
三個表將這樣被創建,表A,A_B和B.如果A包含什麼實體A有,而A_B是關係表,B是什麼B是。我通過創建一個新會話,beginTransaction,saveOrUpdate,提交併關閉會話來保存/更新它們。
現在,問題是,每當我添加一個新的項目列出並更新A,休眠刪除整個A_B表,然後插入一切與新項目。其實,我只是希望它的1個新行A_B和1個新行添加到B.
<property name="hbm2ddl.auto">update</property>
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
其餘部分是相當多的標準
在此處發佈您的hibernate配置文件(hibernate.cfg.xml)。 – 2012-01-06 10:27:54
我應該注意到對象A不是持久性的,因爲我關閉了會話並且沒有二級緩存。 – HeavenAgain 2012-01-06 10:38:02