一般情况下 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:
在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐