Webアプリケーションで熱心なフェッチを行いたい.マッピングファイルで次のことを行っています
<many-to-one name="user" class="com.xyz.beans.User" lazy="false" fetch="join">
<column name="startedBy" />
</many-to-one>
<many-to-one name="participantByParticipant1" class="com.xyz.beans.Participant" lazy="false" fetch="join" cascade="all" >
<column name="participant1" />
</many-to-one>
<many-to-one name="participantByParticipant2" class="com.xyz.beans.Participant" lazy="false" fetch="join" cascade="all">
<column name="participant2" />
</many-to-one>
私は次のようなクエリを持っています
Query query = session.createQuery("from Post as p order by challenge.createdOn desc");
query.setFirstResult(0);
query.setMaxResults(10);
参加者テーブルには他のテーブルへのマッピングがいくつかあります.そしてそれらのフェッチ戦略は同じです.これは上記のクエリを実行するのに約2秒以上かかります.休止状態によって生成された次のクエリを見ることができます.投稿ごとに2人の参加者があります)
1) どうしてですか?単一の結合を使用しないのはなぜですか?
2)これを最適化するにはどうすればよいですか?時間がかかりすぎます。テーブルは現在10レコードしかありません