0

私はそのようなことをする必要があります:

構造は次のとおりです。

X には Y のリストが含まれます。Y には Z のリストが含まれるか含まれません。

Xroot.fetch("Y", JoinType.INNER);
Xroot.fetch("Y.Z", JoinType.LEFT);

しかし、JPA では最後の行が機能しません。それを行う方法はありますか?

4

2 に答える 2

1

子の内部を取得する必要があります。

Fetch<X,Y> yFetch = xRoot.fetch("Y", JoinType.INNER); 
yFetch.fetch("Z", JoinType.LEFT);

もちろん、流動的に入力することもできます

xRoot.fetch("Y", JoinType.INNER).fetch("Z", JoinType.LEFT);

http://docs.oracle.com/javaee/6/api/javax/persistence/criteria/Fetch.htmlを参照してください。

于 2012-10-17T15:16:15.520 に答える
1

JPA 2.0 仕様では複数レベルのフェッチをサポートする必要がないため、ベンダーに依存しないソリューションはありません。

この仕様の実装では、複数レベルのフェッチ結合をサポートする必要はありません。マルチレベルのフェッチ結合を使用するアプリケーションは移植できません。

ドキュメントによると、Hibernate は少なくとも HQL クエリで複数レベルのフェッチをサポートしています。EclipseLink ではeclipselink.left-join-fetchクエリ ヒントを使用できます。

于 2012-10-17T19:02:05.730 に答える