2011-12-29 7 views
0

私はJPAを初めて使いました。 JPA Entity Lifecycle Eventsをデータベース・トリガーの代わりに使用する方法を理解しようとしています。JPA Entityライフサイクルイベントとデータベーストリガー

"Before update"データベーストリガ(Postgresql)では、更新前と更新後の値を含むOLDとNEWレコードが常に存在することを除いて、もちろん同じです。

私はJPAに関するドキュメントを見つけることができませんでした。 Javadocのドキュメントでは、PreUpdate注釈についてはあまり言及していません。

ありがとうございます!

答えて

0

JPAは仕様のみと私たちは

実装に特定する必要があると思うのライフサイクルを研究することです。 EJBエンティティBean/Hibernate Entity Beanなど、独自のものを持つもの

ライフサイクルモデル。

0

ライフサイクルイベントは、JPAで定義されているです。 PerPersist、PostPersist、PreRemove、PostRemove、PreUpdate、PostUpdate、PostLoadです。 エンティティクラスのメソッドに、適切なアノテーション(上記のいずれか)を使用してアノテーションを付けます。 メソッドのシグネチャは、それが任意のアクセス修飾子を持つことができる

void someMethodName() 

あります。 エンティティマネージャのメソッドを呼び出すなど、コールバック内でできることにはいくつかの制限があります。

特にPreUpdate:PreUpdateはdbを更新する前にいつでも呼び出されることが保証されていますが、何も表示されません。