English 中文(简体)
JPQL to SQL converter
原标题:

Is it possible to access the SQL which is generated by JPQL?

I would like to use the SQL to later create a view for my purposes.

I am using Hibernate if it matters.

最佳回答

So you need to write your own JPQL implementation then :-) After all, converting JPQL into SQL for an RDBMS datastore is what a JPQL implementation is. Good Luck!

Sure you could make use of an existing JPQL implementation though, whether Hibernate, or EclipseLink, or DataNucleus ... and since they are all open source you ought to go and dig in their codebase.

问题回答

Is it possible to access the SQL which is generated by JPQL?

You can access the SQL String from an Hibernate Interceptor, more precisely from the method 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

If you decide to go this way, the best option is to extends EmptyInterceptor and to override only the methods you want.

You can hook your interceptor using the following declaration in your persistence.xml:

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

You can set the hibernate.show_sql property to true, then all the SQL will be shown on the console.

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




相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签