injecting entityManager into a POJO
gebuh Aug 25, 2011 10:03 AMHi all, I'm using Seam 2.2.0 with jboss 5.1.0GA.
I'm trying to inject an entityManager into a POJO action bean:
@In EntityManager entityManager;
I can get an entityManager with
(EntityManager)Component.getInstance("entityManager")
But then I get LIE errors for entity beans unless I make all FetchTypes eager.
I've tried all manner of configuration changes, but nothing is working, if I use an injected entityManager it's always null. Is it even possible?
My current persistence.xml:
<persistence-unit name="myApplicationName" transaction-type="JTA"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <jta-data-source>java:/MyDatasource</jta-data-source> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/> <property name="hibernate.hbm2ddl.auto" value="validate"/> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.format_sql" value="true"/> <property name="hibernate.default_schema" value="MY_PROD"/> <!-- Only relevant if Seam is loading the persistence unit (Java SE bootstrap) --> <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/> <!-- for session logging --> <property name="jboss.entity.manager.factory.jndi.name" value="java:/EntityManagers/MyEMFactory"/> </properties> </persistence-unit>
current components.xml:
<persistence:entity-manager-factory name="entityManagerFactory" persistence-unit-name="myApplicationName"/> <persistence:managed-persistence-context name="entityManager" auto-create="true" persistence-unit-jndi-name="java:/EntityManagers/MyEMFactory"/>
I've tried:
<factory name="hibernateSession" value="#{entityManager.delegate}" scope="stateless" auto-create="true"/> <persistence:managed-persistence-context name="entityManager" auto-create="true" entity-manager-factory="#{entityManagerFactory}"/>
and
<persistence:hibernate-session-factory name="hibernateSessionFactory"/> <persistence:managed-hibernate-session name="hibernateSession" session-factory="#{hibernateSessionFactory}"/>
I've tried the Seam documentation and examples, but nothing I'm doing is working, I'd appreciate any advice.