为了优化,我一直在努力在我的项目中捕获一个非常复杂的 JPA 查询的确切 SQL,但到目前为止我无法这样做。我尝试了以下方法:
1) 尝试通过 logback 启用休眠日志,方法是将以下内容放入我的 logback.xml 并启用 show_SQL
<logger name="org.hibernate.type" level="ALL" />
<logger name="org.hibernate" level="TRACE">
<appender-ref ref="fdpAdminAppender" />
</logger>
2) 尝试将 P6spy-2 驱动程序与 Jboss AS7 和 postgres 一起使用,但无法使其正常工作。它给出了以下异常。
com.p6spy.engine.spy.P6SpyDriver cannot be cast to javax.sql.XADataSource
3) 在 JBoss AS 7 中启用了 inbuild Datasource spy,它确实有效。但是日志显示了太多的数据,所有这些对我来说都是无用的,因为它们再次将值附加为“?”。即使我可以在这里获得完整的 SQL 语句,我的问题也将得到解决。
到目前为止,我只成功完成了第 3 步,但要么我错过了一些东西,要么它以这种方式工作,无论哪种情况,我的实际目的都没有解决。所以请有人帮我从 JPA 获取实际的 SQL 查询。我不关心我如何得到它,我只需要得到它。在开发过程中,我经历了多次验证 JPA 生成的实际 SQL 值的需要。奇怪的是为什么没有标准的方法来做到这一点。