HQL Hint Oracle

Olá Pessoal

Sabem me dizer como adicionar hints do Oracle, por exemplo /*+ ALL_ROWS */, em consultas HQL?

Obs: Não quero fazer consultas nativas. Pretendo usar HQL. Utilizo Hibernate.

Não encontrei informações na API.

Obrigado

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

Use .setComment("…")

[=

Oi Hebert,

Eu tinha acessado esse link, mas não funcionou a solução. Você testou? conseguiu validar?

Obrigado

[quote=gmmascarin]Oi Hebert,

Eu tinha acessado esse link, mas não funcionou a solução. Você testou? conseguiu validar?

Obrigado[/quote]Eu ñ uso hibernate nativo. Uso JPA. Com JPA nativo você tem setHint(). [=

Com Hibernate também temos o setHint(). Meu problema é outro. Preciso adicionar hint sql em hql, por exemplo ALL_ROWS, RULE, INDEX… Apesar do nome, o setHint() do JPA é diferente.

Valeu!

Com Hibernate também temos o setHint(). Meu problema é outro. Preciso adicionar hint sql em hql, por exemplo ALL_ROWS, RULE, INDEX… Apesar do nome, o setHint() do JPA é diferente.

Valeu![/quote]
http://docs.oracle.com/javaee/6/api/javax/persistence/Query.html#setHint(java.lang.String,%20java.lang.Object)

Não consegui ver a diferença:

[quote] setHint

Query setHint(java.lang.String hintName,
java.lang.Object value)

Set a query property or hint. The hints elements may be used to specify query properties and hints. Properties defined by this specification must be observed by the provider. Vendor-specific hints that are not recognized by a provider must be silently ignored. Portable applications should not rely on the standard timeout hint. Depending on the database in use and the locking mechanisms used by the provider, this hint may or may not be observed.

Parameters:
    hintName - name of the property or hint
    value - value for the property or hint 
Returns:
    the same query instance 
Throws:
    IllegalArgumentException - if the second argument is not valid for the implementation

[/quote] Em nenhum momento fala que o set hint é apenas para JPQL ou Native Query. Pelo que eu já li, Hint é Hint.

Hebert, é diferente sim. Preciso usar hint do Oracle não o setHint() do JPA. Se estou errado me mostra como enviar um all_rows pelo setHint(). Verá que não é possível.

Os hints que o JPA informa na documentação são alguns que o provedor implementa. Esses hints permitem informar alguns parâmetros afim de que a performance da consulta seja melhor, mas ainda assim esses parâmetros são diferentes dos parâmetros que o próprio SGBD oferece.

Mais uma vez obrigado

Veja se te ajuda:
https://hibernate.atlassian.net/browse/HHH-6123

Hebert,

http://stackoverflow.com/questions/1327503/how-to-…o-hibernate-criteria-api-query
Muito boa essa solução. Fazemos isso em scripts. Infelizmente, não posso executar diretamente através da camada Java, mas é muito útil.

https://hibernate.atlassian.net/browse/HHH-6123
Legal também. O rapaz foi corajoso. A versão do Hibernate é diferente da minha, mas ficou uma dica legal pra implementar.

No meu caso vou partir para sql nativo mesmo. O custo benefício será bem maior.

Valeu. Abraços

Tudo bom Pessoal?

Alguém já conseguiu alguma abordagem para resolver este problema usando HQL?
Minhas buscas resultaram em soluções muito parecidas com as desta cvrsa.

Oi hermannnetto,

Acabei usando SQL Nativo mesmo. Se você descobrir algo, por favor, posta para gente.

Abraços