gpt4 book ai didi

hibernate - 在 JBoss AS 7 中捕获由 hibernate JPA 生成的最终 SQL 查询

转载 作者:行者123 更新时间:2023-12-04 18:42:33 25 4
gpt4 key购买 nike

为了优化,我一直在努力在我的项目中捕获一个非常复杂的 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>

2) 尝试将 P6spy-2 驱动程序与 Jboss AS7 和 postgres 一起使用,但无法使其正常工作。它给出了以下异常。
com.p6spy.engine.spy.P6SpyDriver cannot be cast to javax.sql.XADataSource

3) 在 JBoss AS 7 中启用了内置数据源 spy ,它确实有效。但是日志显示了太多的数据,所有这些对我来说都是无用的,因为它们再次将值附加为“?”。即使我可以在这里获得完整的 SQL 语句,我的问题也将得到解决。

到目前为止,我仅在第 3 步中取得了成功,但要么我遗漏了某些东西,要么就是这样工作,无论哪种情况,我的实际目的都没有得到解决。所以请有人帮我从 JPA 获取实际的 SQL 查询。我不关心我如何得到它,我只需要得到它。
在开发过程中,我曾多次需要验证 JPA 生成的实际 SQL 的值。奇怪的是为什么没有标准的方法来做到这一点。

最佳答案

只需在“persistence.xml”中添加以下内容:

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

确保将其放入 <properties>标签,就像这样:
<persistence>
<persistence-unit>
<properties>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
</properties>
</persistence-unit>
</persistence>

祝你好运 :)

关于hibernate - 在 JBoss AS 7 中捕获由 hibernate JPA 生成的最终 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22475810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com