2015-12-03 2 views
0

J'utilise eclipse link comme implémentation JPA. J'ai une requête nommée comme ceci:référençant des noms de table (pas d'alias) dans des conseils

@NamedQuery(name = "QueryName", 
      query = "SELECT c FROM Customer c, AccountingUnit au where c.contract.state = :state AND ...") 

Le résultat requête SQL fait interroger sur 4 tables qui obtiennent des alias de table t0, t1, t2, t3 semblable à ceci:

SELECT ... FROM CUSTOMER t0, ACCOUNTING_UNIT t1, CUSTOMER_CONTRACT t2, ... 

et maintenant je voulez ajouter un Conseil Oracle qui fonctionne quand je dis:

query.setHint("eclipselink.sql.hint" , "/*+ USE_NL(t0 t2) */"); 

mais je préférerais écrire comme ceci:

query.setHint("eclipselink.sql.hint" , "/*+ USE_NL(Customer Customer_Contract) */"); 

Y at-il un moyen de le faire?

Répondre

0

IMHO lors de l'utilisation d'alias Oracle utilisera uniquement hint lorsqu'il contient ces alias.

Je doute qu'EclipseLink essaie même de faire la distinction entre divers indices. Le mot dans l'indice peut également être un nom d'index ou une constante magique. Le meilleur serait de vérifier le code source EclipseLink.