我想注入休眠會話到DAO。 DAO被注入到CDI的EJB 3.1無狀態Bean中。注入休眠會話(非EntityManager)到DAO(與JEE6)
我不想使用EntityManager。我更喜歡直接使用Hibernate Session。 但與EJB一起使用時,應用程序服務器(JBoss 7)嘗試注入EntityManager而不是hibernate Session。
而我得到當DAO是建立在如下錯誤:
Caused by: java.lang.IllegalArgumentException: Can not set org.hibernate.Session field com.mycompany.persistence.dao.RoleDAO.session to org.jboss.as.jpa.container.TransactionScopedEntityManager
我的代碼:
的persistence.xml
<persistence>
<persistence-unit name="MyPU">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:jboss/datasources/MyDS</jta-data-source>
<class>com.mycompany.entity.MyEntity</class>
<class>com.mycompany.entity.OtherEntity</class>
<properties>
<property name="hibernate.show_sql" value="false" />
</properties>
</persistence-unit>
</persistence>
RoleBean.java(在EJB)
@Stateless
@Remote(RoleRemote.class)
public class RoleBean implements RoleRemote {
@Inject
private RoleDAO roleDAO;
}
RoleDAO.java
@Named
public class RoleDAO {
@PersistenceUnit(unitName = "MyPU")
private Session session;
}
和錯誤: Caused by: java.lang.IllegalArgumentException: Can not set org.hibernate.Session field com.mycompany.persistence.dao.RoleDAO.session to org.jboss.as.jpa.container.TransactionScopedEntityManager
是否有可能注入休眠會議(不完整tyManager)在EJB環境中?
謝謝