Pergunta

É possível acessar o SQL que é gerado pelo JPQL?

Gostaria de usar o SQL para criar posteriormente uma visão para meus propósitos.

Estou usando o Hibernate, se isso importa.

Foi útil?

Solução

Portanto, você precisa escrever sua própria implementação JPQL: Boa sorte!

Claro que você pode fazer uso de uma implementação JPQL existente, seja hibernada ou eclipselink ou datanucleus ... e como todos são de código aberto, você deve procurar sua base de código.

Outras dicas

É possível acessar o SQL que é gerado pelo JPQL?

Você pode acessar o SQL String de um Hibernate Interceptor, mais precisamente do método Interceptor.html#onPrepareStatement(java.lang.String)

OnPreparestatement

String OnPreparestatement(String sql) Called when sql string is being prepared. Parâmetros: sql - sql to be prepared Retornos: original or modified sql

Se você decidir seguir por esse caminho, a melhor opção é estender EmptyInterceptor e substituir apenas os métodos que você deseja.

Você pode conectar seu interceptador usando a seguinte declaração em seu persistence.xml:

<properties>
  <property name="hibernate.ejb.interceptor" value="com.acme.MyInterceptor"/>
</properties>

Você pode definir o hibernate.show_sql Propriedade para True, todo o SQL será mostrado no console.

<property name="hibernate.show_sql">true</property>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top