我想在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?
答案 0 :(得分:0)
我放弃了那个确切的解决方案。相反,我创建了另一个具有EJB Annotations的类。拦截器将通过使用在应用程序上下文中查找EJB类的提供程序类来调用该EJB。在那里,entityManager正确关联。