2016-04-12 9 views
2

Ich versuche, Oracle-Optimierer hinzufügen Abfrage schneller aus Anwendungscode mit Kriterien API. Es gibt eine addQueryHint() - Methode in Criteria, aber es scheint nicht zu funktionieren, wenn die neueste Hibernate-API verwendet wird.Oracle Optimierer Hinweis mit Hibernate

Nach der Suche im Internet habe ich einige Hacks/Workarounds gefunden, aber etwas funktioniert nicht für mich .. Ich erstelle eine Select - Anweisung mit der ArrayList von Spalten, ich muss/* + PARALLEL (4) */hinzufügen Kriterien unter Verwendung von Projektionen als. Jede Hilfe wird geschätzt.

ProjectionList projectionList = Projections.projectionList(); 

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

    criteria.setProjection(projectionList); 

Antwort

0

Sie können Oracle Hinweis Option Native SQL-Abfragen

Siehe Link unten

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

unten Abstimmung

können Sie in einem Oracle Hinweis zu setzen versuchen erreichen, indem a Hinzufügen einer Projektionsliste zu den Kriterien.

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 

Ref verlinken: How to insert an "Optimizer hint" to Hibernate criteria api query

+0

keine Option für uns in der aktuellen Umgebung. Danke für die Antwort – Gary