我想在我的网络应用程序中进行急切的获取。我的映射文件中有以下内容
<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 秒以上的时间来执行上面的查询,我可以看到 hibernate 1 选择查询生成的以下查询来获取参与者表的 10 个后 20 选择查询(如每个帖子有2名参与者)
1) 为什么会这样?为什么它不接受单个连接?
2)我该如何优化呢?它花费了太多时间。该表现在只有 10 条记录