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