孙兴斌*_*孙兴斌 7 java sql hibernate spring-data-jpa spring-boot
我正在使用spring-data-jpa构建SpringBoot应用程序.我知道如何记录这个问题的所有sqls.使用Hibernate时如何使用参数值打印查询字符串
但是,如果我只想记录失败的sqls呢?
Ale*_*rov 10
有两种选择:
首先,让我们分析问题并将查询类型拆分为SELECT和INSERT/UPDATE查询.
解决问题的方法基本上需要做两件事:1.它应该使用参数值记录查询.这可以通过以下方式完成:
# logs the SQL statements
log4j.logger.org.hibernate.SQL=debug
# Logs the JDBC parameters passed to a query
log4j.logger.org.hibernate.type=trace
Run Code Online (Sandbox Code Playgroud)
2.解决方案需要禁用批处理查询,否则,您将获得一堆SQL,但您不会知道哪个SQL确实是有问题的.
hibernate.jdbc.batch_size=1
Run Code Online (Sandbox Code Playgroud)
不确定这是否足以完全禁用批处理,但你需要找出答案.
或者,您可以使用专为DEBUG设计的jdbc驱动程序.这将是p6spy驱动程序,它可以选择刷新每个单独的SQL语句,这正是您想要的.
在这里,您需要设置autoflush=true配置参数以确保每个单独的sql语句立即刷新到数据库.
https://p6spy.readthedocs.io/en/latest/configandusage.html
| 归档时间: |
|
| 查看次数: |
763 次 |
| 最近记录: |