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 事件侦听器方法。如果您想使用 JPA 而不是原始 Hibernate,则应该在 Spring中使用JPA 模板而不是 HibernateTemplate。

于 2009-10-15T02:45:12.650 回答