[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 メーリングリストの案内