0

ユーザーのアドレスをアップロードする必要があります。ユーザーには住所と郵便番号の 2 つの住所があります。これらの住所が互いに異なる場合、簡単に両方の住所を保存できますが、住所が同じ場合に ID を同じに保つにはどうすればよいですか?

ユーザークラス

private Address address;
private Address postalAddress;
....

コード

 ....
 session.save(user.getAddress());
 session.save(user.getPostalAddress());
 .....

両方のアドレスが同じ場合はどうすればよいですか?

4

1 に答える 1

2

これらのアドレスが同じかどうかを気にする必要はありません。を使用してエンティティを保存するsession.save()と、そのエンティティは管理対象になります。したがって、save()エンティティが既に保存されている場合、2 番目は何もしません。

編集

Address addr = new Address();
user.setAddress(addr);
user.setPostalAddress(addr);

addressと の両方に同じアドレスを設定していますpostalAddress。次に、これを行うと:

session.save(user.getAddress());
session.save(user.getPostalAddress());

またはこれを行います(関連付けで定義cascade="persist"した後):

session.save(user);

次に、Hibernate はaddressテーブルに 1 つの行のみを挿入し、同じ ID をuser.addressおよびuser.postalAddress列に設定します。

于 2013-06-27T02:44:39.190 に答える