1

SpringのHibernateTemplateを使用してエンティティを保存しました。また、このようなコールバックメソッドを追加します。

@PrePersist
  public void prePersist() {
    setCreateDate(new Date());
  }

しかし、saveOrUpdate()メソッドを呼び出したときに、このコールバックアノテーションが呼び出されなかったことがわかりました。

  public void persist(Object entity) {
    hibernateDaoSupport.getHibernateTemplate().saveOrUpdate(entity);
  }

EntityManagerを使用するだけでこれらのコールバックアノテーションメソッドが呼び出されるという投稿がいくつか見つかりましたが、正しいですか?そうでない場合は、@PrePersistが呼び出されないのはなぜですか。誰かが私に問題を調査するための指示を与えることができます、どうもありがとう。

4

1 に答える 1

4

はい、EntityManagerイベントリスナーメソッドは、EntityManagerを使用している場合にのみ呼び出されます。生のHibernateの代わりにJPAを使用する場合は、Spring内でHibernateTemplateの代わりにJPAテンプレートを使用する必要があります。

于 2009-10-15T02:45:12.650 に答える