0

既に受け取った結果オブジェクトから要素の異なる組み合わせをデータベースに照会する必要があります。

たとえば、Personエンティティのリストを取得します。Person エンティティの各人に対して、(各人に対して) 住所のリストを取得する必要があります。

それには 2 つの方法があります。

  1. Person エンティティを反復処理し、各 Person エンティティに対してクエリを実行して、その人物の Addresses のリストを取得します。
  2. Person エンティティの要素を使用してクエリを動的に作成し、1 つのクエリを実行してすべての Person のすべてのアドレス リストを取得し、Person エンティティを再度繰り返して、各 Person のアドレス リストを照合します。

私が得るかもしれない多くの Person エンティティを知りません。では、パフォーマンスと実践の観点から、より良いアプローチは何ですか。

したがって、100 個の Person エンティティがある場合、最初のアプローチでは 100 クエリになり、次のような巨大なクエリを使用する 2 番目のアプローチになります。

 from address where  (person.id = 1 and person.zip = 393)
                  or (person.id = 2 and person.zip = 123)
                  or (person.id = 3 and person.zip = 345)
                  .... // 10 times.

どちらの方がよいですか?Oracle の Or 条件に関する制限/制限はありますか? より良いアプローチはありますか?バッチクエリ?

4

1 に答える 1

0

熱心な読み込みで hibernate を使用して、必要な制限を付けて人を読み込むことで、必要な結果を直接取得できます。または、遅延読み込みに固執したい場合は、結果を構成する配列のリストを取得できるように、 person と Address で内部結合を使用してみてください

于 2013-07-07T02:34:55.323 に答える