有没有办法在没有参数的情况下将有效的 SQL 日志语句与 Spring JPA 完全映射

Is there a way to fully map a valid SQL logging statement with Spring JPA without parameters

使用 spring JPA 有一种方法可以在日志语句中获取有效的 sql,而无需从准备好的语句中参数化 sql。

我可以在下面的调试设置中看到 SQL,但数据已参数化。有没有办法让它像下面这样生成 sql。

从日志参数化:

2021-12-12 17:54:37.414 DEBUG 10185 --- [调度-1] org.hibernate.SQL

插入 DB2PROD.GLOBAL_TABLE (AGENT) 值 (?)

2021-12-12 17:54:37.415 TRACE 10185 --- [   scheduling-1] o.h.type.descriptor.sql.BasicBinder      : binding parameter [2] as [VARCHAR] - [N]
2021-12-12 17:54:37.415 TRACE 10185 --- [   scheduling-1] o.h.type.descriptor.sql.BasicBinder      : binding parameter [3] as [VARCHAR] - []

我看到了这些值,但我必须手动插入它们以构建正确的查询。有没有什么可以让它自动的。

Insert into table value('N') for example.

我目前正在使用此设置。

# Log Settings
logging.level.root: ${JPA_LOG_LEVEL}
logging.level.org.hibernate.SQL: ${JPA_LOG_LEVEL}
logging.level.org.hibernate.type.descriptor.sql.BasicBinder: ${JPA_LOG_LEVEL}
# Enable parameter binding (set to trace for param values), useful during debugging
# For most verbose logging, add in startup script:
# export JPA_LOG_LEVEL=TRACE
#  export SQL_LOG_LEVEL=TRACE
logging.level.org.hibernate.type.descriptor.sql: trace
logging.level.org.hibernate.type.descriptor.type: trace

logging.level.org.hibernate.SQL=调试 logging.level.org.hibernate.type.descriptor.sql.BasicBinder=追踪

第二行显示准备好的语句参数