3

Hibernateの上でOlingo 1.2を使用しています。

250 行を返すリクエストがあり、各行は 1 対多の関係で別のテーブルにリンクしています。

$expand を実行して子テーブルのすべてのデータを取得しましたが、データベースで実行されたクエリを調べると、251 の個別の呼び出しが行われているように見えます。1 つは 250 行を返すマスター テーブル用で、次に各テーブル用に 1 つずつです。子レコードを返す行。

Olingo コードを見ると、この怠惰なアプローチは設計によるものです。

私は Microsoft ODATA プロセッサで $expand をテストしましたが、この場合、彼らは貪欲なアプローチを使用しています。

私の質問は次のとおりです: $expand に貪欲なアプローチを使用するように Olingo を切り替えるにはどうすればよいですか (つまり、結合をデータベースにプッシュする)?

4

1 に答える 1

0

生成されたクエリは、Olingo ではなく Hibernate の結果です。これは、Hibernate が子テーブルのクエリを生成するために使用するデフォルトの方法です。@Fetch(FetchMode.Join)Hibernate でアノテーションを見て、それをリレーションに適用する必要があります。説明については、次のリンクをご覧ください。

https://stackoverflow.com/a/11077041/3873392

于 2015-05-18T14:46:12.887 に答える