0

JPA 呼び出しを (エンティティークラスに触れずに) インターセプトしたいので、$subject が必要ですか? 誰かが似たようなことを試しましたか。

4

2 に答える 2

1

ファイル内のすべてのエンティティに対してデフォルトのエンティティ リスナーを指定することで、「onPersist」などの JPA ライフサイクル イベントをインターセプトできorm.xmlます。エンティティに触れる必要はありません。例えば:

class SomeListener { 
   @PrePersist
   private void prePersist(Object entity){
      //do some stuff before persisting the entity
   }

   @PostPersist
   private void postPersist(Object entity){
       //do some staff after persisting the entity
   }
}

<entity-mappings>
  <persistence-unit-metadata>
    <persistence-unit-defaults>
       <entity-listeners>
          <entity-listener class="SomeListener">
          <pre-persist method-name="prePersist"/>
          <post-persist method-name="postPersist"/>
        </entity-listener>
       </entity-listeners>
     </persistence-unit-defaults>
  </persistence-unit-metadata>
</entity-mappings
于 2013-04-29T12:59:23.687 に答える