首页 > 代码库 > 【hibernate】与触发器一起运行

【hibernate】与触发器一起运行

触发器的事件

1、插入事件

2、更新事件

3、删除事件

数据库触发器经常用来生成审计日志,对重要数据的更新记录事件,这种记录审计日志的办法简便,有很好的性能,缺点是不支持跨数据库平台。

触发器引起的问题及解决方法

问题:
触发器执行的操作对Session来说是透明的,如果触发器修改了对象的属性,Session无法检测到数据库中数据的变化,因此Session不会自动刷新缓存中的对象。
解决办法:
执行完save方法后,例如User对象u1:
session.save(u1);
session.flush();
session.refresh(u1);
flush方法会清理缓存,立即执行由save方法计划的insert语句。
refresh方法重新从数据库中加载刚刚被保存的User对象,这样就使Session缓存与数据库保持同步了。