我怎么能为EntityManager.class做一个拦截器

时间:2012-02-15 13:38:18

标签: java jpa ejb entitymanager

我想使用entitymanager审核插入,更新,删除等。为此,我如何为EntityManager.class做一个可以使用EJB ???

的拦截器

1 个答案:

答案 0 :(得分:6)

您无需为此添加拦截器,只需使用JPA的callback methods和/或entity listeners

使用第一种方法,您可以添加使用以下其中一个注释声明的实体方法:@PrePersist@PostPersist@PreUpdate@PostUpdate@PreRemove@PostRemove@PostLoad。这些名称是不言自明的,这意味着对于每个事件(pre-persist,post-persist等),都会调用带注释的方法。

第二种方法类似,但方法是在一个或多个单独的类中实现的,而这些类又使用@EntityListeners注释添加到实体中。

第二种方法更灵活,但无论哪种方式,您都可以在发生之前/之后拦截持久性操作并执行所需的操作。