[jboss-user] [Installation, Configuration & DEPLOYMENT] - Re: No active transaction

areian do-not-reply at jboss.com
Tue Oct 28 18:02:37 EDT 2008


Hey again.
I Found a solution: It works if I manually inject an EntityManager using the EntityManagerFactory. I was just under the impression that it was supposed to do that automatically in a container mannaged environment.

The revised code for the session bean follows:



  | package sm.comm.frontend2.beans.sessions;
  | 
  | import javax.ejb.Stateless;
  | import javax.persistence.EntityManager;
  | import javax.persistence.EntityManagerFactory;
  | import javax.persistence.PersistenceContext;
  | import javax.persistence.PersistenceUnit;
  | import sm.beans.entities.Employee;
  | import sm.comm.frontend2.dtos.assemblers.EmployeeAssembler;
  | import sm.comm.frontend2.dtos.assemblers.SkillAssembler;
  | import sm.comm.frontend2.dtos.DetailEmployeeDTO;
  | import sm.comm.frontend2.dtos.SkillDTO;
  | 
  | @Stateless
  | public class F2FacadeBean implements F2FacadeRemote {
  |     @PersistenceUnit
  |     private EntityManagerFactory em;
  | 
  |     public DetailEmployeeDTO EmployeeDTO(int id) {
  |         Employee emp = em.createEntityManager().find(Employee.class, id);
  |         return EmployeeAssembler.createDetailEmployeeDTO(emp);
  |     }
  |     
  |     public void persistSkill(SkillDTO skill) {
  |         System.out.println(skill.getName());
  |         System.out.println(em.createEntityManager().isOpen());
  |         em.createEntityManager().persist(SkillAssembler.createSkill(skill));
  |     }
  |     
  |     public String hello() {
  |         return "Hello World!";
  |     }
  |  
  | }
  | 

It contains some debugging code, but the idea should be clear.

I just got brain wave. Am I right in thinking that if I want to directly inject the EntityManager I should use @PersistenceContext, and if I use @PersistenceUnit I need to use the factory?


Thanks a lot for the time taken to help out with this


View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4185235#4185235

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4185235



More information about the jboss-user mailing list