2.3 事件监听
Hibernate的实体管理加强Hibernate的核心,通过Hibernate的事件监听系统,实现了所有的EJB3的语义。当您使用事件系统自己要小心,你可能会覆盖一些EJB3的语义。一个安全的办法就是给你的事件侦听器添加到下面给出的列表中。
表2.2 Hibernate的实体管理器的默认事件监听器
flush | org.hibernate.ejb.event.EJB3FlushEventListener |
auto-flush | org.hibernate.ejb.event.EJB3AutoFlushEventListener |
delete | org.hibernate.ejb.event.EJB3DeleteEventListener |
flush-entity | org.hibernate.ejb.event.EJB3FlushEntityEventListener |
merge | org.hibernate.ejb.event.EJB3MergeEventListener |
create | org.hibernate.ejb.event.EJB3PersistEventListener |
create-onflush | org.hibernate.ejb.event.EJB3PersistOnFlushEventListener |
save | org.hibernate.ejb.event.EJB3SaveEventListener |
save-update | org.hibernate.ejb.event.EJB3SaveOrUpdateEventListener |
pre-insert | org.hibernate.secure.JACCPreInsertEventListener, org.hibernate.valitator.event.ValidateEventListener |
pre-insert | org.hibernate.secure.JACCPreUpdateEventListener, org.hibernate.valitator.event.ValidateEventListener |
pre-delete | org.hibernate.secure.JACCPreDeleteEventListener |
pre-load | org.hibernate.secure.JACCPreLoadEventListener |
post-delete | org.hibernate.ejb.event.EJB3PostDeleteEventListener |
post-insert | org.hibernate.ejb.event.EJB3PostInsertEventListener |
post-load | org.hibernate.ejb.event.EJB3PostLoadEventListener |
post-update | org.hibernate.ejb.event.EJB3PostUpdateEventListener |
请注意,如果未启用安全的JACC*,那么它的EventListeners将被删除。
您可以通过属性(请参阅配置和引用)或通过ejb3configuration.getEventListeners()API配置事件侦听器。