Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何向Hibernate criteria api查询添加优化器提示_Java_Sql_Hibernate_Criteria - Fatal编程技术网

Java 如何向Hibernate criteria api查询添加优化器提示

Java 如何向Hibernate criteria api查询添加优化器提示,java,sql,hibernate,criteria,Java,Sql,Hibernate,Criteria,我正在使用Hibernate4.3.7/JPA2,我注意到在Hibernate4.3中 我可以将Oracle查询提示嵌入hibernate query throw addQueryHint,我尝试使用criteria api和hql修复它,但不幸的是,它对我不起作用 有没有办法扭转这种局面?这是我的密码 公共列表getall(){ 如有任何回复,将不胜感激 谢谢你我对addQueryHint没有任何运气。根据文档,它应该可以传递提示,但是当我查看发送的SQL时,它不在那里。我注意到这个功能的测试

我正在使用Hibernate4.3.7/JPA2,我注意到在Hibernate4.3中 我可以将Oracle查询提示嵌入hibernate query throw addQueryHint,我尝试使用criteria api和hql修复它,但不幸的是,它对我不起作用

有没有办法扭转这种局面?这是我的密码

公共列表getall(){

如有任何回复,将不胜感激


谢谢你

我对addQueryHint没有任何运气。根据文档,它应该可以传递提示,但是当我查看发送的SQL时,它不在那里。我注意到这个功能的测试使用的是Oracle方言,我们使用的是SQL Server,所以我认为它可能没有在SQL Server中实现,但是我看,你在Oracle中遇到了问题

以下是文档中的描述:

向SQL中添加DB查询提示。这些提示不同于JPA的QueryHint,后者特定于JPA实现,并忽略DB供应商特定的提示。相反,这些提示仅用于供应商特定的提示,如Oracle的优化器。支持多个查询提示;方言将决定连接和放置

无论如何,我发现了一个非常糟糕的黑客/解决方法,但我希望看到addQueryHint得到修复

.add(Restrictions.sqlRestriction("1=1 ADD_YOUR_HINT_HERE")))
.add(Restrictions.sqlRestriction("1=1 ADD_YOUR_HINT_HERE")))