0

次の注釈を含む結果JPAクラスがあります。

@JoinColumn (name = "cod_id", insertable = false, updatable = false, referencedColumnName = "cod")
@ManyToOne(optional = true, fetch=FetchType.EAGER)
private TableView dep;

TableView は、元が別のデータベースのビューにあるエンティティです。したがって、私が見る限り、テーブルに直接アクセスすることはできません。

Ok。この紹介の後、次は次のとおりです。

問題:結果を取得すると、TopLink JPA は各 dep を 1 つずつクエリします。Results からすべての resultSet を取得し、次に各 dep を 1 つずつ取得します。

質問:この動作を回避する方法はありますか? データベース サーバーの労力を最小限に抑える方法はありますか?

4

1 に答える 1

0

クエリで結合フェッチを使用するか、マッピングで @JoinFetch を使用するか、バッチ フェッチを使用できます。

http://java-persistence-performance.blogspot.com/2010/08/batch-fetching-optimizing-object-graph.htmlを参照してください。

于 2012-09-24T14:05:00.303 に答える