[jpa:7] Re: Hibernate EntityManagerの使用感想

Hidenoshin Yoshida [E-MAIL ADDRESS DELETED]
2007年 4月 19日 (木) 07:28:56 JST


吉田(da-yoshi)です。

> HibernateのListenerで細かな設定が可能というのは
> どのあたりでしょうか?
> こういう設定ができるからJPAよりHibernateのListenerが便利、
> みたいな話があったら聞かせてくださいm(_ _)m

org.hibernate.eventパッケージには、沢山のEventListenerインターフェイスと
Eventクラスが用意されてあり、HibernateはこれらのListenerを使って
かなり細かなカスタマイズが可能になってます。
(HibernateのJPA対応自体にもこのEventListenerが使われてます)
例えば、アップデート時にロード時のEntityの状態と変更されたEntityの状態
を比較して独自の処理を行ったりとか、
MergeEventListenerを使って、merge処理のときにTransientなプロパティを
引数のEntityから戻り値のEntityにコピーしたり・・・みたいな処理が
可能です。
JPA標準のEventでは、対象Entity以外の引数が無いので
ロード時の状態と現在の状態を比較したりとか、
merge前と後の状態を比較したり等の処理は出来ません。

EventListenerの登録はpersistence.xmlのpropertyを使うので
EntityクラスにはHibernate独自の記述を書く必要も無く
汎用性を失わないままカスタマイズが可能なのも利点でしょうか。

逆に、JPAのEventの仕様はもうちょっとEvent系の引数が欲しいところですね。
なので、現時点では、Hibernateを使うときにはHibernate独自のEventListener
を使った方が色々と便利ではないかと感じてます。

-- 
吉田秀之進
[E-MAIL ADDRESS DELETED]


jpa メーリングリストの案内