一般情况下 springboot 项目开启sql打印,要进行以下配置:
spring.jpa.properties.hibernate.show_sql=true
或者
spring.jpa.show-sql
但是进行了如下的错误配置:
spring.jpa.properties.hibernate.show_sql=true //控制台是否打印
#spring.jpa.properties.hibernate.format_sql=true //格式化sql语句
#spring.jpa.properties.hibernate.use_sql_comments=true //指出是什么操作生成了该语句
导致sql打印失效,无法获得想要的结果。
经源码分析,发下如下:
sql打印调用的SqlStatementLogger 的方法,由 logToStdout 控制。
而此参数的配置在JdbcServiceImpl 中初始化,也就是说 配置文件的配置项要由此进行处理:
但是,如果进行了上述的错误配置,formatSQL 变量本应是 true false 的 bool值,在这里变成字符串了。导致永远为false: