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 噢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值