Mysql Hibernate更新OneToMany
在Hibernate中,我有两个实体类 A类和B类 A类包含B类的列表Mysql Hibernate更新OneToMany,mysql,hibernate,one-to-many,Mysql,Hibernate,One To Many,在Hibernate中,我有两个实体类 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; // ArrayLis
@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;
}
@实体
甲级{
@Id@GeneratedValue(策略=GenerationType.AUTO)
私人长id;
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER)
List;//ArrayList
}
@实体
B类{
@Id@GeneratedValue(策略=GenerationType.AUTO)
私人长id;
}
将这样创建三个表,表A、A_B和B。其中A包含实体A所拥有的任何内容,A_B是关系表,B是实体B所拥有的任何内容。我通过创建新会话、开始会话、保存或更新、提交和关闭会话来保存/更新它们
现在的问题是,每当我向列表中添加一个新项并更新a时,hibernate都会删除整个a_B表,然后将所有内容与新项一起插入。实际上,我只希望它向A_B添加一个新行,向B添加一个新行
更新
org.hibernate.cache.NoCacheProvider
其余的几乎都是标准的请检查您的hibernate配置文件,因为您可以提供配置,以便在每次服务器重新启动时删除以前的表并创建新表。发布您的hibernate配置(hibernate.cfg.xml)我应该注意,对象A不是持久的,因为我关闭了会话,并且没有二级缓存。我已经进行了更新,但我认为这不是问题所在。
<property name="hbm2ddl.auto">update</property>
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>