在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