you can't inject arbitrarily into any class. Injection works only into EJBs, interceptors, and when we support it, servlets/JSPs. Relaly only enterprise components.
Thanks for the reply. So what are my choices? Do I have to create an InitialContext and look up the EntityManager via JNDI?
I tried and I get an InjectedEntityManager back which throws an exception if I try and get the Transaction from it. If I don't begin a transaction I get an TransactionRequiredException. So what do I do? Is it possible to get an ExtendedEntityManager versus an InjectedEntityManager?
Thanks for any help!
you want an extended entity manager? Lookup the factory in jndi after you've declared jboss.entity.manager.factory.jndi.name and create it from the factory.
I don't know, do I want an ExtendedEntityManager to do this?
Basically, what is the perferred way to obtaining an EntityManager in a POJO running within JBoss?
InitialContext ctx = new InitialContext(); EntityManager em = (EntityManager) ctx.lookup("java:/EntityManagers/TestEM");
Returns an EntityManager of type InjectedEntityManager. Which I guess is fine but I get an IllegalStateException if I call:
em.getTransaction(); (to begin() & commit()/rollback())
And if I don't call em.getTransaction() and just call em.find(...) I get a TransactionRequiredException.
Damn if I do damn if I don't!
Thanks again for any suggestions!
sorry, i gave you directions on how to obtain factory/entitymanager for the next release which will hopefully be tomorrw.