Конвертер JPQL в SQL



Можно ли получить доступ к SQL, который генерируется JPQL?



Я хотел бы использовать SQL для последующего создания представления для моих целей.



Я использую Hibernate, если это имеет значение.

658   3  

3 ответов:

Поэтому вам нужно написать свою собственную реализацию JPQL: -) в конце концов, преобразование JPQL в SQL для хранилища данных СУБД-это то, что представляет собой реализация JPQL. Удачи Вам!

Конечно, вы можете использовать существующую реализацию JPQL, будь то Hibernate, EclipseLink или DataNucleus ... и поскольку все они с открытым исходным кодом, вам следует пойти и покопаться в их кодовой базе.

Можно ли получить доступ к SQL, который генерируется JPQL?

Вы можете получить доступ к SQL String из гибернации Interceptor, точнее от метода Interceptor.html#onPrepareStatement(java.lang.String)

OnPrepareStatement

String onPrepareStatement(String sql) Called when sql string is being prepared. Parameters: sql - sql to be prepared Returns: original or modified sql

Если вы решили пойти этим путем, лучшим вариантом будет расширение EmptyInterceptor и переопределять только те методы, которые вы хотите.

Вы можете подключить перехватчик, используя следующее объявление в вашем persistence.xml:

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

Вы можете установить свойству hibernate.show_sql значение true, тогда все SQL будут показаны на консоли.

<property name="hibernate.show_sql">true</property>

Comments

    Ничего не найдено.