2

次のエンティティがあります。

従業員 [@Id ロング id、文字列名、@OneToOne アドレス branchAddress、@OneToOne アドレス homeAddress]

住所 [@Id Long id, String street, String City, String zipcode, Country country]

国 [@Id 長い ID、文字列の名前、文字列の通貨、文字列の isoCode]

私の問題は、従業員を読​​み込もうとするときです。ほとんどの場合、アドレスは必要ありません。住所を取得すると、住所とそれに続く国が取得されます。これらは、従業員をロードするたびに実行される追加のクエリです。

@OneToOne(FetchType.LAZY) を作成しようとしましたが、機能しません。まだ不要な情報を取得しています。

複合オブジェクトのフェッチを回避するにはどうすればよいですか?

最終結果に Address オブジェクトが含まれないようにしたいのですが、これは 20 のシナリオに 1 回必要になるため、個別に取得できます。

任意のアイデア、これを達成する方法。

ありがとう

4

1 に答える 1

1

oneToOne値がnull許容でない場合は、optional=false@ OneToOne(optional = false、fetch = FetchType.LAZY)を追加することで遅延読み込みを実現できます。

ここで完全に説明されています

于 2012-08-07T19:27:04.163 に答える