大規模なHibernate DetachedCriteriaクエリを変更して追加の関連付けをフェッチする必要があります。HibernateでDetachedCriteriaを使ってネストしたオブジェクトを取得しようとしています
マイオブジェクトグラフは以下の構造に似ている、私はそれぞれの車に関連した売上を取得したい:
DetachedCriteria criteria = DetachedCriteria.forClass(Showroom.class);
// ... Existing criteria query code ...
criteria.setFetchMode("cars.sales", FetchMode.JOIN);
しかしassociationPath引数:
<class name="Showroom" table="showroom">
...
<bag name="cars" lazy="false">
<one-to-many class="Car" />
</bag>
...
</class>
<class name="Car" table="car">
...
<set name="sales" lazy="true">
<one-to-many class="Sale" />
</set>
...
</class>
私が何をしたいことのようなものですsetFetchModeでドット表記を無視して、LazyInitializationExceptionが発生するようです:
原因:org.hibe rnate.LazyInitializationExceptionは:Car.sales、無セッションまたはセッションが
を閉じた私の周りに検索し、これまでに何例かの情報を発見したしました:なまけ ロールのコレクションを初期化に失敗しました。 Hibernate documentationにはネストされた関連付けを取得する方法の例は記載されておらず、Javadoc for setFetchModeは私のドット表記のアプローチがうまくいかなければならないことを示唆しているようです...
助けてください。
と似ています。私はcreateAliasがフィールドのエイリアスだけでなく結合を作成するという二重の目的を持っていたことに気づいていませんでした。 – seanhodges