将entityManager注入自定义Hibernate Interceptor类

时间:2016-07-25 14:04:46

标签: java hibernate ejb interceptor

我想在Hibernate拦截器类上注入Hibernate中的entityManager。我正在使用EJB和JBoss。事务是JTA,提供者是org.hibernate.ejb.HibernatePersistence。

我试着这样做:

@Stateless(name = "HistoricInterceptor")
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public class HistoricInterceptorImpl extends EmptyInterceptor implements HistoricInterceptor {

@PersistenceContext(name = "windi")
private EntityManager em;

// overriden methods, etc

}

但是对entityManager的引用始终为null。

预计会出现这种情况吗?如何从Interceptor类中访问entityManager?

1 个答案:

答案 0 :(得分:0)

我放弃了那个确切的解决方案。相反,我创建了另一个具有EJB Annotations的类。拦截器将通过使用在应用程序上下文中查找EJB类的提供程序类来调用该EJB。在那里,entityManager正确关联。