我有两个JPA实体:Person
和Address
。JPA cascade not working
Address
类是不同类使用的常见类。
在Person
类我有一个@OneToOne
关系,因为这:
@OneToOne(cascade = CascadeType.ALL)
private Address address;
我使用JPA与RESOURCE_LOCAL
选项,在一个独立的应用程序。
我实例化一个Person
,Address
,填写所有属性并要求JPA保存全部为em.merge(person)
。
由于记录已经存在于数据库中,我希望JPA更新所有信息。但是,如果我也对人员实例进行了更改,它只会更新地址信息。如果我只是更改地址实例的某些信息并要求JPA保存Person
,则不会更新任何内容。我通过Hibernate检查生成的SQL,并且在merge()
操作中,它只执行SELECT
在person
表(加入address
表)。
在Person
和Address
类中,我有equals()
和hashCode()
以及Eclipse的默认实现。
关于如何级联更新到Address
的任何想法?
您能向我们展示rele vant代码,我的意思是创建并合并这些对象的代码? –
Hi @ bhesh-gurung!代码基本实例化Person和Address,在Person实例上设置地址并调用em.merge(person)。但是它们中的两个已经存在于数据库中,所以我期待更新。 –