Spring Boot中logging.level.org.hibernate.type配置项的作用是什么
Hibernate日志配置项
org.hibernate.type功能说明 你配置的两组Hibernate日志项作用是互相配合的:
org.hibernate.SQL设为debug级别:只会输出Hibernate生成的原生SQL语句,语句中的动态参数会以?占位符展示,无法查看实际传入的参数值。org.hibernate.type设为trace级别:是Hibernate类型处理模块的总日志开关,开启后会输出两类核心调试信息:- SQL参数绑定细节:会逐个打印SQL中
?占位符对应的实际参数值、参数对应的Java类型、JDBC映射类型,和你测试得到的结果一致,是排查SQL参数传值问题的核心配置。 - 结果集映射细节:会打印查询返回的JDBC结果集字段,转换为Java实体属性的完整过程,包括字段值、转换后的属性值、类型转换异常信息等,适合排查实体映射异常问题。
- SQL参数绑定细节:会逐个打印SQL中
开启两个配置后的典型日志样例如下:
# org.hibernate.SQL 输出的SQL语句 DEBUG org.hibernate.SQL - select user0_.id as id1_0_, user0_.name as name2_0_ from user user0_ where user0_.id=? # org.hibernate.type 输出的参数绑定信息 TRACE org.hibernate.type.descriptor.sql.BasicBinder - binding parameter [1] as [BIGINT] - [1001]
注意事项
- 该配置仅推荐在开发、测试环境开启,生产环境不要启用:一方面会产生巨量日志占用存储资源,另一方面会直接打印接口传入的敏感参数,存在数据泄露风险。
- 如果仅需要查看SQL绑定参数,不需要结果集映射日志,可以将配置缩小为
org.hibernate.type.descriptor.sql.BasicBinder: trace,能大幅减少日志输出量。
内容的提问来源于stack exchange,提问作者JinYeong Kim
相关产品推荐
相关产品推荐

