如何解决有什么方法可以将SQL查询提示从@FetchFetchMode.SUBSELECT应用于Hibernate生成的查询吗?
我从使用Hibernate的Criteria API构建的复杂查询中继承了一个应用程序,该应用程序存在查询性能问题。
我已经能够使用this_
成功地将某些必要的提示应用于条件查询(仅适用于criteria.addQueryHint(String hint)
的那些提示),但是我要查询的实体只有一个-与@Fetch(FetchMode.SUBSELECT)
映射的多对多集合属性,这导致运行第二个类似的查询,但没有提示。例如:
第一个查询带有提示:
SELECT /* INDEX (this_ PARENT_TABLE_IDX01) */
this_.parentid AS parentid2_6_3_,this_.somecolumn AS somecolumn_6_3_,FROM
parent_table this_
/* more joins... */
WHERE
/* problematic where clause... */
然后是类似的:
SELECT
childentity0_.parentid AS parentid2_6_1_,childentity0_.id AS id1_5_1_,childentity0_.id AS id1_5_0_,childentity0_.parentid AS parentid2_5_0_,childentity0_.somecolumn AS somecolumn3_5_0_,FROM
child_table childentity0_
WHERE
childentity0_.parentid IN (
SELECT
this_.parentid AS id2_6_3_,this_.othercolumn AS othercolumn3_6_3_,FROM
parent_table this_
/* more joins... */
WHERE
/* problematic where clause... */
)
第二个查询中的子查询实际上与第一个查询相同,如何向其添加相同的提示?
该应用当前正在使用Hibernate 4.3.8。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。