Dan*_*ner 6 java hibernate jpa
我有一个JPA @Entity类,现在使用@PrePersist很长一段时间了.今天我想添加一些功能,我需要该实体的ID.此ID在数据库中由HIBERNATE_SEQUENCE持久化期间生成.它通常在 em.persist(实体)之后设置.
由于某种未知的原因,@PrePersist方法被触发...而@PostPersist根本不会触发:
@Entity
public class MyEntity {
@PrePersist
protected void onCreate() {
System.out.println("ExtendedEntity.onCreate()");
}
@PostPersist
protected void afterCreate() {
System.out.println("ExtendedEntity.afterCreate()");
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用带有Java v7 +,Hibernate v3.3.1.GA和Seam v2.2.2.Final的JBoss v4.2环境......
@PostPersist是否有隐藏的要求?
对于其他所有人...... Hibernate事件监听器似乎干扰JPA持久性事件...从我的persistence.xml中删除以下行后,将触发@PostPersist回调.
<property name="hibernate.ejb.event.pre-insert" value="my.hibernate.events.listeners.Listener" />
<property name="hibernate.ejb.event.pre-update" value="my.hibernate.events.listeners.Listener" />
<property name="hibernate.ejb.event.pre-delete" value="my.hibernate.events.listeners.Listener" />
<property name="hibernate.ejb.event.post-insert" value="my.hibernate.events.listeners.Listener" />
<property name="hibernate.ejb.event.post-update" value="my.hibernate.events.listeners.Listener" />
<property name="hibernate.ejb.event.post-delete" value="my.hibernate.events.listeners.Listener" />
Run Code Online (Sandbox Code Playgroud)
我们甚至不再使用它们......它们从未被完全禁用过.
归档时间: |
|
查看次数: |
8462 次 |
最近记录: |