【问题标题】:JPA + Hibernate + java.util.logging (JDK logging): show sql queries with argumentsJPA + Hibernate + java.util.logging(JDK 日志记录):显示带参数的 sql 查询
【发布时间】:2013-08-08 19:40:29
【问题描述】:

我们在 Hibernate 中使用 JPA,并且因为我们在项目中使用 java 内置日志记录,所以我们已经路由 Hibernate 以使用 java.util.logging(JDK 日志记录)(通过包括 slf4j-jdk14-1.6. 4.jar)。现在显示 hibernate/JPA 执行的实际查询存在问题。我们已将此添加到我们的 persistence.xml:

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

这有点帮助,在插入内容时显示更多查询。然而,问号仍然存在。其他答案建议将 org.hibernate.type 设置为 TRACE 以解决此问题,但这是 log4j 特定的建议。我们如何才能真正显示 hibernate 使用的所有参数?谢谢!

【问题讨论】:

  • 你不能没有日志系统(比如 log4j)

标签: sql hibernate jpa logging


【解决方案1】:

另一种方法是使用 JDBC Driver Proxy 日志库,例如 log4jdbc

log4jdbc 使用 Java 的 Simple Logging Facade (SLF4J) 并支持以下日志系统:-

Log4j
java.util logging in JDK 1.4
logback
Jakarta Commons Logging

它支持显示带有参数的 SQL 查询..这是他们文档的摘录

jdbc.sqlonly :- 仅记录 SQL。在准备好的语句中执行的 SQL 自动显示它的绑定参数替换为数据 绑定在该位置,以大大提高可读性

【讨论】:

    【解决方案2】:

    创建一个 logging.properties,添加行 org.hibernate.SQL.level=FINEST,然后使用 -Djava.util.logging.config.file=/path/to/logging.properties VM 参数启动您的程序

    【讨论】:

      猜你喜欢
      • 2016-12-09
      • 2011-07-04
      • 1970-01-01
      • 1970-01-01
      • 2021-09-01
      • 2015-01-21
      • 1970-01-01
      • 2013-03-03
      • 1970-01-01
      相关资源
      最近更新 更多