Java 删除实体会自动更新其关系吗?

Java 删除实体会自动更新其关系吗?,java,jpa,entity,jpa-2.0,relationship,Java,Jpa,Entity,Jpa 2.0,Relationship,假设个人实体有一个地址列表字段,该字段与地址实体有@manytomy或@OneToMany关系。如果我用em.remove(“詹姆斯的地址”)删除一个地址,那么地址列表是否会自动更新以删除“詹姆斯的地址”?视情况而定 如果您有一个OneToMany,并且地址表中有此人的外键,则删除该地址将有效。如果此人及其地址在删除地址之前已在会话中加载,则其地址列表仍将包含删除的地址。你必须自己维护所有的关联。如果此人的地址尚未加载,则加载时,列表中显然不会包含已删除的地址,因为Hibernate在数据库中找

假设
个人
实体有一个
地址列表
字段,该字段与
地址
实体有
@manytomy
@OneToMany
关系。如果我用em.remove(“詹姆斯的地址”)删除一个
地址
,那么
地址列表是否会自动更新以删除
“詹姆斯的地址”

视情况而定

如果您有一个OneToMany,并且地址表中有此人的外键,则删除该地址将有效。如果此人及其地址在删除地址之前已在会话中加载,则其地址列表仍将包含删除的地址。你必须自己维护所有的关联。如果此人的地址尚未加载,则加载时,列表中显然不会包含已删除的地址,因为Hibernate在数据库中找不到该地址

如果OneToMany使用联接表,或者是多个联接表,则删除该地址而不将其从引用该地址的所有人员的地址列表中删除将导致异常,因为联接表将继续引用要删除的地址。外键约束将导致异常