Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Hibernate更新OneToMany_Mysql_Hibernate_One To Many - Fatal编程技术网

Mysql Hibernate更新OneToMany

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

在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; // 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>