JPQL zu SQL-Wandler
Frage
Ist es möglich, die SQL für den Zugriff auf die von JPQL erzeugt wird?
Ich möchte die SQL verwenden, um später einen Blick für meine Zwecke zu erstellen.
Ich verwende Hibernate, wenn es darauf ankommt.
Lösung
Sie müssen also Ihre eigene JPQL Umsetzung dann schreiben :-) Immerhin ist JPQL in SQL für einen RDBMS-Datenspeicher umzuwandeln, was eine JPQL Implementierung ist. Viel Glück!
Sicher könnte man die Verwendung einer bestehenden JPQL Implementierung machen aber ob Hibernate oder Eclipse oder Datanucleus ... und da sind sie alle Open-Source Sie sollten in ihre Code-Basis gehen und zu graben.
Andere Tipps
Ist es möglich, die SQL für den Zugriff auf die von JPQL erzeugt wird?
Sie können die SQL String
Zugriff von einem Hibernate Interceptor
, genauer gesagt aus dem Verfahren 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
Wenn Sie sich entscheiden, diesen Weg zu gehen, ist die beste Option, um sich EmptyInterceptor
und nur die Methoden außer Kraft setzen Sie wollen.
Sie können Ihre Abfangjäger mit der folgenden Erklärung in Ihrem persistence.xml
Haken:
<properties>
<property name="hibernate.ejb.interceptor" value="com.acme.MyInterceptor"/>
</properties>
Sie können die hibernate.show_sql
Eigenschaft auf true gesetzt, dann sind die alle SQL auf der Konsole angezeigt werden.
<property name="hibernate.show_sql">true</property>