[jpa:9] Re: Hibernate EntityManagerの使用感想
Toshihiro Nakamura
[E-MAIL ADDRESS DELETED]
2007年 4月 19日 (木) 10:58:04 JST
中村(taedium)です。
> 例えば、アップデート時にロード時のEntityの状態と変更されたEntityの状態
> を比較して独自の処理を行ったりとか、
> MergeEventListenerを使って、merge処理のときにTransientなプロパティを
> 引数のEntityから戻り値のEntityにコピーしたり・・・みたいな処理が
> 可能です。
> JPA標準のEventでは、対象Entity以外の引数が無いので
> ロード時の状態と現在の状態を比較したりとか、
> merge前と後の状態を比較したり等の処理は出来ません。
ありがとうございます。
なるほど、Listenerの処理で使える情報量が違うということですね。
シグネチャでいうと次のような違いになるでしょうか。
■HibernateのListenerのメソッド例
public boolean onPreUpdate(PreUpdateEvent event);
■JPAのListenerのメソッド例
@PreUpdate
public void onPreUpdate(Object entity);
PreUpdateEventには変更前の値やHibernate固有のオブジェクトなど
いろいろ詰まっていますね。
たしかに、HibernateのListenerのほうが便利そうです。
> EventListenerの登録はpersistence.xmlのpropertyを使うので
> EntityクラスにはHibernate独自の記述を書く必要も無く
> 汎用性を失わないままカスタマイズが可能なのも利点でしょうか。
persistence.xmlで設定できるんですか。
これは知りませんでした。
--
Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]>
jpa メーリングリストの案内