私は3つのクラスを持っています
Class1にはclass2の要素を持つListがあります。
これはジョイント可能です(キーは一意ではないため、外部キーとはマッピングできません)!HIbernate深度2の関係をロードする
Class2には、クラス3の外部キーがあります。
Class3はこの関係から何も保存しません。
は全体のものは以下のようになります。私は(たSession.loadでクラス1の要素を読み込むときに
Class1:
List<Class2> class2;
<bag name="class2" cascade="all" table="Class1_Class2" lazy="false" access="field">
<key column="Class1_ID" />
<many-to-many class="Class2" column="Class2_ID"/>
Class2:
Class3 class3
<many-to-one name="class3" class="Class3" column="Class3_ID" fetch="join" unique="false"/>
:
Class1 Class1-2 jointable Class2
+-----------+ +-----------+-----------+ +-----------+-----------+
| Class1_ID | | Class1_ID | Class2_ID | | Class2_ID | Class3_ID |
+-----------+ +-----------+-----------+ +-----------+-----------+
| 1 | | 1 | 3 | | 3 | 10 |
| 2 | | 2 | 7 | | 7 | 3 |
| ... | | ... | ... | | ... | ... |
+-----------+ +-----------+-----------+ +-----------+-----------+
Class3
+-----------+
| Class3_ID |
+-----------+
| 10 |
| 3 |
| ... |
+-----------+
マッピングは次のようになりますClass1.class、id)私はオブジェクトを取得します。しかし!
class1.class2(要素のリスト)にアクセスできますが、class1.class2.class3にアクセスしようとすると、セッションがないために遅延読み込みを実行できないという例外が発生します。
私のデータ構造のため、この時点ではセッションを開くことができません。
1つのDBアクセスですべてをロードする必要があります。
私の質問:すべてを一度に読み込むマッピングを変更することはできますか?そして、私はどうやって1セッションですべてをロードし、class1.class2.class3にアクセスできるクラスclass1のオブジェクトを返すのですか? おかげ