我有两个 JPA 实体:Person
和Address
.
类是不同类使用的Address
通用类。
在Person
课堂上,我有这样的@OneToOne
关系:
@OneToOne(cascade = CascadeType.ALL)
private Address address;
我RESOURCE_LOCAL
在独立应用程序上使用带有选项的 JPA。
我实例化 a Person
, an Address
,填充所有属性并要求 JPA 保存所有的em.merge(person)
.
由于数据库中已经存在记录,我希望 JPA 更新所有信息。但是,如果我也更改了 person 实例上的某些内容,它只会更新地址信息。如果我只是更改地址实例的一些信息并要求 JPA 保存Person
,则不会更新任何内容。我检查了 Hibernate 生成的 SQL 并在merge()
操作时,它只SELECT
在person
表上执行 a(加入address
表)。
在我拥有的Person
和类中,以及Eclipse 的默认实现中。Address
equals()
hashCode()
关于如何将更新级联到的任何想法Address
?