2016-04-12 41 views
2

我正在尝试添加oracle优化器以更快地从使用条件API的应用程序代码运行查询。 Criteria中有addQueryHint()方法,但它似乎不能使用最新的hibernate API。使用Hibernate的Oracle优化器提示

通过网络搜索后,我发现一些黑客/解决方法,但有些东西不适合我..我创建一个选择语句使用ArrayList的列,我需要添加/ * + PARALLEL(4)* /使用预测的标准。任何帮助表示赞赏。

ProjectionList projectionList = Projections.projectionList(); 

    while (viewIt.hasNext()) { 
     viewName = viewIt.next(); 
     projectionList.add(Projections.property(viewName)); 
    } 

    criteria.setProjection(projectionList); 

回答

0

可以使用原生SQL查询

请参考以下链接

http://www.mkyong.com/hibernate/how-to-embed-oracle-hints-in-hibernate-query/

下投票

可以尝试把在甲骨文提示通过实现甲骨文提示选项给条件添加一个ProjectionList。

ProjectionList proList = Projections.projectionList(); 
proList.add(Projections.sqlProjection("/*+INDEX_DESC(this_ MY_INDEX_NAME)*/ 1 as MYHINT", 
    new String[]{}, 
    new Type[]{})); 
//add properties from your class 

参考链接:How to insert an "Optimizer hint" to Hibernate criteria api query

+0

不能在当前的环境下我们的选择。感谢您的回应 – Gary