将 entityManager 注入自定义 Hibernate 拦截器 class
Inject entityManager into custom Hibernate Interceptor class
我想在 Hibernate 拦截器上从 Hibernate 注入 entityManager Class。我正在使用 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。
这种行为是预期的吗?如何从拦截器中访问 entityManager class?
我已经放弃了那个确切的解决方案。相反,我创建了另一个具有 EJB 注释的 class。拦截器将通过使用在应用程序上下文中查找 EJB class 的提供程序 class 来调用该 EJB。在那里,entityManager 已正确关联。
我想在 Hibernate 拦截器上从 Hibernate 注入 entityManager Class。我正在使用 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。
这种行为是预期的吗?如何从拦截器中访问 entityManager class?
我已经放弃了那个确切的解决方案。相反,我创建了另一个具有 EJB 注释的 class。拦截器将通过使用在应用程序上下文中查找 EJB class 的提供程序 class 来调用该 EJB。在那里,entityManager 已正确关联。