首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >捕获JBoss AS 7中hibernate JPA生成的最终SQL查询

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

Stack Overflow用户
提问于 2014-03-18 17:58:04
回答 1查看 12.7K关注 0票数 5

出于优化的目的,我一直在努力在我的项目中捕获非常复杂的JPA查询的确切SQL,但到目前为止我还无法做到这一点。我尝试了以下几种方法:

1)尝试通过在我的logback.xml中添加以下内容并启用show_SQL,通过logback启用hibernate日志

代码语言:javascript
复制
    <logger name="org.hibernate.type" level="ALL" />
 <logger name="org.hibernate" level="TRACE">
    <appender-ref ref="fdpAdminAppender" />
 </logger>

2)尝试在Jboss AS7和postgres上使用P6spy-2驱动程序,但就是不能工作。它给出了以下异常。

代码语言:javascript
复制
com.p6spy.engine.spy.P6SpyDriver cannot be cast to javax.sql.XADataSource

3)在JBoss AS 7中启用了内置数据源间谍,并且工作正常。但是日志显示了太多的数据,所有这些对我来说都是无用的,因为它们再次将值附加为'?‘。即使我可以在这里获得完整的SQL语句,我的问题也会得到解决。

到目前为止,我只成功地完成了步骤3,但要么我遗漏了什么,要么它以这种方式工作,无论是哪种情况,我的实际目的都没有解决。因此,请帮助我从JPA获得实际的SQL查询。我不关心我如何得到它,我只需要得到它。在开发过程中,我曾多次使用值来验证JPA生成的实际SQL。奇怪的是,为什么没有标准的方法来做到这一点。

EN

回答 1

Stack Overflow用户

发布于 2014-03-18 19:13:34

只需在‘persistence.xml’中添加以下内容:

代码语言:javascript
复制
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>

确保将其放入<properties>标记中,如下所示:

代码语言:javascript
复制
<persistence>
    <persistence-unit>
        <properties>
            <property name="hibernate.show_sql" value="true"/>
            <property name="hibernate.format_sql" value="true"/>
        </properties>
    </persistence-unit>
</persistence>

祝你好运:)

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22475810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档