我想使用entitymanager审核插入,更新,删除等。为此,我如何为EntityManager.class做一个可以使用EJB ???
的拦截器答案 0 :(得分:6)
您无需为此添加拦截器,只需使用JPA的callback methods和/或entity listeners。
使用第一种方法,您可以添加使用以下其中一个注释声明的实体方法:@PrePersist
,@PostPersist
,@PreUpdate
,@PostUpdate
,@PreRemove
,@PostRemove
或@PostLoad
。这些名称是不言自明的,这意味着对于每个事件(pre-persist,post-persist等),都会调用带注释的方法。
第二种方法类似,但方法是在一个或多个单独的类中实现的,而这些类又使用@EntityListeners
注释添加到实体中。
第二种方法更灵活,但无论哪种方式,您都可以在发生之前/之后拦截持久性操作并执行所需的操作。