是否有可能访问SQL其产生的JPQL?

我想用SQL以后创建一个看我的目的。

我使用的休眠如果它事项。

有帮助吗?

解决方案

所以,你需要编写自己的JPQL实现,那么:-)毕竟,转换成JPQL SQL为RDBMS存储是一个JPQL实现是什么。祝你好运!

当然,你可以利用现有的JPQL执行的,虽然,是否休眠或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. 参数: sql - sql to be prepared 返回: 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>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top