寻求休眠调试信息改进[重复]
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=debug
和log4j.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%) [重复]