如何在 Spring Boot 3/Hibernate 6 中使用查询参数值记录 SQL 语句

Ant*_*gos 11 java hibernate spring-data-jpa spring-boot

我最近将 Spring Boot 应用程序升级到 v3.0,这需要将 Hibernate 升级到 v6.1.5.Final。

我使用 Spring Data JPA 和 Hibernate 作为 JPA 提供程序。当我在本地运行应用程序时,我想记录 SQL 语句以及这些语句中任何参数的值。为此,我按照此博客文章将以下内容添加到本地配置中:

spring:
  jpa:
    show-sql: false
    properties:
      hibernate:
        format_sql: true
logging:
  level:
    org.hibernate.SQL: debug
    org.hibernate.type.descriptor.sql: trace
Run Code Online (Sandbox Code Playgroud)

我很确定这在升级之前有效,但现在只记录 SQL 语句,即缺少参数值。

使用 Spring Boot v3.0 和 Hibernate v6.1.5.Final 时是否可以记录查询参数值?

Dir*_*yne 30

使用 Hibernate 6 在 Spring boot 3 中记录 SQL:

  • logging.level.sql用于 SQL 日志记录组,包括 Hibernate SQL 记录器。
  • logging.level.org.hibernate.orm.jdbc.bind用于显示绑定参数

所以这应该有效:

logging:
  level:
    sql: debug
    org.hibernate.orm.jdbc.bind: trace
Run Code Online (Sandbox Code Playgroud)