SpringBeanAuthoringInterceptor创建上下文中容器的EntityManager
我有一个EJB,注释如下:SpringBeanAuthoringInterceptor创建上下文中容器的EntityManager,spring,hibernate,jpa,ejb,entitymanager,Spring,Hibernate,Jpa,Ejb,Entitymanager,我有一个EJB,注释如下: @Stateless @Interceptors(SpringBeanAutowiringInterceptor.class) SpringBeanAutowiringInterceptor创建一个ClassPathXmlApplicationContext,然后创建一些@组件。其中一个@组件是DAO,因此喜欢注入EntityManager。最好是EJB的容器管理EntityManager(根据我目前的见解) 如果我向EJB中添加以下内容,则效果很好: @Persi
@Stateless
@Interceptors(SpringBeanAutowiringInterceptor.class)
SpringBeanAutowiringInterceptor
创建一个ClassPathXmlApplicationContext
,然后创建一些@组件。其中一个@组件是DAO,因此喜欢注入EntityManager
。最好是EJB的容器管理EntityManager
(根据我目前的见解)
如果我向EJB中添加以下内容,则效果很好:
@PersistenceContext
EntityManager entityManager;
但是,如果我在我的DAO上执行后者(它在Spring中,这是它自己的上下文),则不起作用。无论我是否专门调用单元名(unitName=“test”
,“没有定义名为“test”的bean,而“没有[javax.persistence.EntityManagerFactory]类型的唯一bean”
”)
我在Spring中尝试了jee:jndi查找
,但是我不知道如何在jndi中使用实体管理器来工作。这应该在我的persistence.xml
中或者甚至在另一个级别上完成吗
我在JBOSS中运行所有这些作为Arquillian测试,但我的目标环境是。因此,我也应该避开特定于容器的解决方案。这不是一个WAR项目,而是将EJB JAR封装在EAR中
我想我在这里寻找一般概念或最佳实践,以推动我前进。(因此我限制了问题中包含的代码数量,不过如果有帮助的话,我很乐意分享一些细节。)谢谢 将以下内容添加到Spring配置中
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
看看这个: