ish*_*han 5 hibernate p6spy jpa-2.0 jboss7.x postgresql-9.2
我一直在努力在我的项目中捕获一个非常复杂的JPA查询的确切SQL以进行优化,但到目前为止我无法这样做.我尝试了以下方法:
1)通过在logback.xml中添加以下内容并启用show_SQL,尝试通过logback启用hibernate日志
<logger name="org.hibernate.type" level="ALL" />
<logger name="org.hibernate" level="TRACE">
<appender-ref ref="fdpAdminAppender" />
</logger>
Run Code Online (Sandbox Code Playgroud)
2)尝试使用P6spy-2驱动程序与Jboss AS7和postgres,但只是无法使其工作.它给出了以下例外.
com.p6spy.engine.spy.P6SpyDriver cannot be cast to javax.sql.XADataSource
Run Code Online (Sandbox Code Playgroud)
3)在JBoss AS 7中启用了内置数据源间谍,它确实有效.但是日志显示的数据太多,所有这些对我来说都是无用的,因为它们再次将值附加为"?".即使我可以在这里获得完整的SQL语句,我的问题也将得到解决.
到目前为止,我已经成功完成了第3步,但要么我错过了某些东西,要么就是这样,无论是哪种情况,我的实际目的都没有得到解决.所以请有人帮我从JPA获取实际的SQL查询.我并不关心如何得到它,我只需要得到它.我经历过需要在开发过程中多次验证JPA生成的实际SQL.很奇怪为什么没有标准的方法来做到这一点.
小智 6
只需在'persistence.xml'中添加以下内容:
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
Run Code Online (Sandbox Code Playgroud)
确保将其放在<properties>标签内,如下所示:
<persistence>
<persistence-unit>
<properties>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
</properties>
</persistence-unit>
</persistence>
Run Code Online (Sandbox Code Playgroud)
祝好运 :)
| 归档时间: |
|
| 查看次数: |
12327 次 |
| 最近记录: |