关于对“如何使用hibernate的event/eventlistener ”的补充

我在前面说到Hibernate的event/eventlistener的作用,没有了解它的据体实现机制。

我在应用中遇到这个问题,就是在一个实体Bean中,要插入的记录的某些字段不能为空,但我想在Listener中对那些不能为空的字段加入对应的值 ,比如时间信息什么的,但显示不能插入,好像那个Listener没有起作用。

于是,我把那些不能为空的值全部设置好,再在Listener里把那些信息进行了更改,最后,我发现在产生了两条记录,一条是插入语句,一条是update语句,这搞得我莫名其妙,为什么会产生两条HQL呢?

最后我在数据库中得到了结果,那就是----那条update是Listener产生的!

也就是说,Listener并没有在Session插入数据之前对实体对象的值进行了更改,而是在记示插入之后再对Listener里重设的属性进行update更改。这样似乎增加了开销,但我对它的性能进行了简单的测试,发现并没有增加太多的开销,可能我的测试没有进行大数据的操作,或没有大数量的操作!

我也想在插入之前对实体对象的属性值进行更改,但我试了很多的类都无发达到效果,如果有谁已经可以把那产生两条语句的操作整成一条语句一次性插入操作,请不吝赐教!谢谢了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值