hibernate的interceptors和events

可以用来记录数据库操作日志,
更新某些通用字段(如操作员、更新时间等。

[list]
[*][b]Interceptors[/b]
通过继承EmptyInterceptor,然后根据需要拦截的操作覆盖相应方法。
然后这样调用即可:
// Session-scoped
Session session = sf.openSession( new AuditInterceptor() );
// SessionFactory-scoped
new Configuration().setInterceptor( new AuditInterceptor() );

如果使用Spring,只要配置sessionFactory的entityInterceptor。
[*][b]Event System[/b]
Hibernate3新加入的Event/EventListener机制,实现需要监听的Event对应的EventListener(如LoadEventListener),然后在hibernate.cfg.xml做如下配置:
<hibernate-configuration>
<session-factory>
...
<event type="load">
<listener class="com.eg.MyLoadListener"/>
<listener class="org.hibernate.event.def.DefaultLoadEventListener"/>
</event>
</session-factory>
</hibernate-configuration>

如果使用Spring,配置sessionFactory的eventListeners属性:
<property name="eventListeners">
<map>
<entry key="post-commit-insert"><ref local="XXXPostInsertEventListener" /></entry>
<entry key="post-commit-update"><ref local="XXXPostUpdateEventListener" /></entry>
<entry key="post-commit-delete"><ref local="XXXPostDeleteEventListener" /></entry>
</map>
</property>

[/list]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值