寻求休眠调试信息改进[重复]

Posted

技术标签:

【中文标题】寻求休眠调试信息改进[重复]【英文标题】:seeking for Hibernate debug info improvement [duplicate] 【发布时间】:2011-10-12 14:39:18 【问题描述】:

可能重复:Print query string in hibernate with parameter values

我使用 Hibernate 作为持久层。我将 show_sql 设置为 true 以查看调试信息。

但是,我实际上并没有看到完整的信息,因为大多数 SQL 语句如下:

insert 
into
    Address
    (address1, address2, city, province) 
values
    (?, ?, ?, ?)

参数都是问号,虽然我可以在某些select语句的条件部分看到一些实际数据。

我想要这样的信息:

insert 
into
    Address
    (address1, address2, city, province) 
values
    ("XXX address1", "XX address2", "XXX city", "XXX province")

如何配置才能查看这些参数数据,或者这是休眠中的缺陷 ??

【问题讨论】:

【参考方案1】:

Hibernate 无法将 SQL 及其参数记录在您想要的同一行中。 Hibernate提供的日志记录(通过在log4j配置中设置log4j.logger.org.hibernate.SQL=debuglog4j.logger.org.hibernate.type=trace)只能记录SQL和不同行中的参数,如下所示:

insert 
into
    Address
    (address1, address2, city, province) 
values
    (?, ?, ?, ?)
binding parameter [1] as [VARCHAR] - xxxxxx
binding parameter [2] as [VARCHAR] - xxxxxx
binding parameter [3] as [VARCHAR] - xxxx

如果要在同一行中记录带有参数的 SQL,则必须使用 JDBC 代理驱动程序。我试过log4jdbc,它可以做到,它还可以记录每个SQL语句所花费的时间,并记录导致SQL语句的代码行。

您可以参考这个blog了解更多信息。

【讨论】:

以上是关于寻求休眠调试信息改进[重复]的主要内容,如果未能解决你的问题,请参考以下文章

调试休眠配置的工具

退出、中止、休眠以进行调试?

PHP 调试配置挂起 - 等待 XDebug 会话 (57%) [重复]

PHP 调试配置挂起 - 等待 XDebug 会话 (57%) [重复]

Intellij 调试器越过休眠对象值是空的

IntelliJ IDEA 2018.2.2远程调试Tomcat的配置方法