0

JPA(hibernate)には、次のような多対1および1対1の関係で構成される単純なデータモデルがあります。

町->州->知事->国->大陸

町は多対1で州、州は1対1で知事、知事は多対1で国、国は多対1で大陸です。

一意のIDで単一の町のインスタンスを取得し、ejbqlを使用して関連する州、知事、国、大陸を熱心に取得したいと思います。適切なejbqlは次のとおりです。

select t from town t
join fetch t.state s
join fetch s.governor g
join fetch g.nation n
join fetch n.continent c
where t.id=?id

Hiberanteはこのejbqlから正しいSQLを生成しますが、myTown.getState()。getGovernor()を実行すると。ガバナーのnullオブジェクトを返します。なぜ休止状態がガバナーに影響を与えないのですか?ツリーの1レベル以上上にオブジェクトを配置したくないようです。誰かが私が間違っているのを見ますか?

4

1 に答える 1

0

どうでも。上記の私の構文は実際に機能します。私の問題は、以前のアクティビティから休止状態のセッションをフラッシュせず、適切に設定されていないオブジェクトのキャッシュバージョンを取得することでした。その問題を修正した後、すべてが正常です。

于 2009-12-01T05:13:33.307 に答える