2.3. イベントリスナー
Hibernate Entity Manager はすべての EJB3 セマンティクスを実装するために Hibernate コアを拡張する必要があります。これは、Hibernate のイベントリスナーシステムにより実現されます。イベントシステムを使用する場合は、いくつかの EJB3 セマンティクスをオーバーライドする可能性があるので注意してください。安全な方法は、以下に示されたリストにイベントリスナーを追加することです。
| イベント | リスナー |
|---|---|
| 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 を使用して設定できます。