[英]hibernate not doing a eager fetch (using fetch=“join” and lazy=“false”)
我想在我的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秒钟以上的时间,我可以看到由休眠生成的以下查询1选择查询以获取10张贴20选择查询参与者表(如每个帖子有2位参与者)
1)为什么呢? 为什么不进行单个联接?
2)我该如何优化呢?这花费了太多时间。该表现在只有10条记录
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.