Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.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
Java Hibernate-从集合中删除项_Java_Database_Hibernate_Parent Child - Fatal编程技术网

Java Hibernate-从集合中删除项

Java Hibernate-从集合中删除项,java,database,hibernate,parent-child,Java,Database,Hibernate,Parent Child,我想澄清我所做的关于Hibernate功能的假设。假设我有一个类a,其中a@OneToMany映射为B。这些B都有一个A父引用,以支持A上的mappedBy属性 当我从a中的集合中删除B时,hibernate是否能够自动清空B中的父字段?。根据我所做的所有测试,当从集合中删除某些内容时,它实际上不会通过更改子集合中的父引用来更新数据库 似乎支持我的声明,因为他们手动清空父引用,并将其从父集合中删除。每当从两端映射关联时,其中一端指定为活动端,另一端指定为被动端。(被动端是使用mappedBy=或

我想澄清我所做的关于
Hibernate
功能的假设。假设我有一个类
a
,其中a
@OneToMany
映射为
B
。这些B都有一个
A
父引用,以支持A上的
mappedBy
属性

当我从
a
中的集合中删除
B
时,hibernate是否能够自动清空
B
中的父字段?。根据我所做的所有测试,当从集合中删除某些内容时,它实际上不会通过更改子集合中的父引用来更新数据库


似乎支持我的声明,因为他们手动清空父引用,并将其从父
集合中删除。每当从两端映射关联时,其中一端指定为活动端,另一端指定为被动端。(被动端是使用
mappedBy=
inverse=“true”
映射的端)

当活动端发生更改时,Hibernate不会也不能更新集合的被动端,因为它只能在刷新时检测此类更改。因此,调用代码来修改关联的两端,以确保对象模型始终处于一致状态,这被认为是一种良好的实践

Hibernate本身并不关心关联的两端是否一致,因为它只在刷新数据库时查看活动端

映射一对多关联时,应将一对多端指定为被动。您链接到的hibernate手册部分试图解释原因