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.

War es hilfreich?

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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top