hibernate event使用总结

使用org.hibernate.event.Postbao的接口
例如
public class SavaOrUpdateListener implements PostInsertEventListener{

    private static final long serialVersionUID = 1L;
    public void onPostInsert(PostInsertEvent event){
   
        System.out.println("event=============="+event.getEntity());//当前保存的实体
        System.out.println("event=============="+event.getId());//改实体的id
        System.out.println("event=============="+event.getPersister());//SingleTableEntityPersister(com.redsaga.domain.User)
        System.out.println("event=============="+event.getState());
       
    }
}

注意:在保存和修改的时候都会调用此方法很可能造成死循环

在hibernate.cfg下加上       
    <event type="post-commit-insert">
            <listener class="com.redsaga.busness.event.SavaOrUpdateListener"/>
        </event>
就可以了

在spring使用只有在hibernate3.1才加的新功能
<property name="eventListeners">
    <map>
         <entry key="post-commit-insert"><ref bean="SavaOrUpdateListener" /></entry>
    </map>
</property>
<bean id="SavaOrUpdateListener" class="hibernate.event.SavaOrUpdateListener">
</bean>

或者
<property name="eventListeners">
    <map>
         <entry key="post-commit-insert"><bean class="hibernate.event.SavaOrUpdateListener" /></entry>
    </map>
</property>


<event type="save">在调用session.save是在生成sql前发生在调用session.saveOrUpdate不使用


其他的使用
<event type="post-commit-update">
</entry>
<event type="post-commit-delete" >
</entry>
auto-flush
merge
create
create-onflush
delete
dirty-check
evict flush
flush-entity
load
load-collection
lock
refresh
replicate
save-update
save
update
pre-load
pre-update
pre-insert
pre-delete
post-load
post-update
post-insert
post-delete
post-commit-update
post-commit-insert
post-commit-delete

 Hibernate事件系统&监听器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值