P6SPY打印insert语句不全?
很偶然的,发现在整合SpringSide3的Hibernate时,执行类似
entityDao.save(entity1); entityDao.save(entity2);
代码,P6SPY的抓取SQL,只记录了一条insert语句。
一度以为是我改造的P6SPY版本有问题,
今天再研究这个问题时,发现当日志级别为debug时,出现了AbstractBatch这个类,于是我怀疑,Hibernate在session提交时的dirty check阶段会只能判断一个entity的save情况,大于一次的就使用批量插入来加快效率。
但是P6SPY这个框架可能对jdbc的批量更新没有做完善,导致只记录了最后一次插入的sql。
最后使用jdbcTemplate.batchUpdate()方法证实了这个想法。
再次记录一下,也算解决了困扰多时的一个问题,虽然并不是非常重要。
要彻底解决的话,还要系统的看P6SPY的源代码,暂时没有这个精力。
另:话说P6SPY自从2005年发布了1.3版后就停止更新了,不过我很“神奇”的发现github上有一个叫P6SPY的项目,而作者就是patmoore,版本到了2.0-SNAPSHOT 噢。
相关推荐
gwn00 2020-05-12
liuyang000 2020-03-07
lwwishes 2018-05-31
MikeG 2012-07-26
ALiDan 2019-04-18
xiaocen 2011-06-29
MySQLl 2019-04-09
yushuir 2019-04-08
linshenshijianlu 2019-04-06
cjylean 2019-04-03