我已经基于 JBoss Kitchensink 示例创建了一个示例应用程序。此应用程序使用 CDI Bean 记录实体。我发现使用 JPA + 在新创建的实体上触发观察者来存储新实体非常容易:
@Inject
private Event<MyEntity> propEventSrc;
public void put(MyEntity p){
em.persist(p);
propEventSrc.fire(p);
}
但是,如果用户想要删除所有记录,我找不到触发事件的方法。换句话说:
public void delete(){
Query query = em.createQuery("delete FROM MyEntity ");
query.executeUpdate();
// I need to fire an event here so that the List of MyEntities from the Producer class gets updated
}
我已经尝试过 propEventSrc 的 notifyAll() 方法,但这只会产生异常,知道如何解决这个问题吗?
谢谢马克斯