0

私は3つのエンティティを持っています

A、B、C

A と B の間の 1 対 1 の
関係 B と C の間の多対 1 の関係

エンティティ「A」にアクセスすると、ドリルダウンして C の値を取得できます

ただし、HQL にネストされた条件がある場合、null ポインター例外が発生します。

クエリは次のようになります

from(A) where A.B.C.some_parameter.eq(value)

私が追加しました

<property name="hibernate.max_fetch_depth" value="4" />

私の構成では、それでもNullポインター例外が発生し続けます

4

2 に答える 2

0

クエリは..

"from A a where a.B.C.some_parameter = value"

参照を確認してください。Hibernate Lazyは A、B、C の間で false でなければなりません。定義したプロパティは、あなたの欲求に依存しているとは思いません。また、クエリを実行するエンティティについては、A から C への完全なブリッジと、where 句で使用している C のプロパティが必要です。

于 2012-06-01T14:02:30.690 に答える
0

それはリモートで有効なHQLでさえありません:)

1) エンティティ参照を括弧で囲みません。それはただfrom A

2)その A 参照をさらに逆参照したいので、通常は次のようにエイリアスしますfrom A a

3) .eq が等値比較を実行する試みであると仮定すると、そのwhere a.b.c.someProperty = value

4) fetch_depth は、こ​​こではまったく関係ありません。

于 2012-06-01T13:05:19.027 に答える