と の 2 つの JPA エンティティがPersonありAddressます。
Addressクラスは、異なるクラスで使用される共通のクラスです。
Personクラスでは、次のような関係@OneToOneがあります。
@OneToOne(cascade = CascadeType.ALL)
private Address address;
RESOURCE_LOCALスタンドアロン アプリケーションでオプション付きのJPA を使用しています。
Persona 、 anをインスタンス化し、Addressすべての属性を入力して、JPA にすべてを保存するように依頼しますem.merge(person)。
レコードはデータベースに既に存在するため、JPA がすべての情報を更新することを期待しています。ただし、個人インスタンスでも何かを変更した場合にのみ、住所情報が更新されます。アドレス インスタンスの一部の情報を変更し、JPA に を保存するように依頼してもPerson、何も更新されません。Hibernate によって生成された SQL を確認したところ、merge()操作の直後に、テーブルでのみ実行SELECTされましたperson(テーブルに参加しましたaddress)。
私が持っているクラスとクラスのPerson両方で、Eclipseのデフォルトの実装を使用しています。Addressequals()hashCode()
に更新をカスケードする方法についてのアイデアはありAddressますか?