如果您正在执行CRUD程序,您必须这样做(使用事务类型:RESOURCE_LOCAL而不是JTA)
@PersistenceUnit(unitName="mongo")
EntityManagerFactory emf;
EntityManager em;
@Inject
private SomeObj injectableObj;
public void create()
{
em = emf.createEntityManager(); <---- here
SomeObj obj = new SomeObj();
em.persist(obj);
}
public void read()
{
em = emf.createEntityManager(); <---- here
Query query = em.createQuery("Select s from SomeObj s");
}
public void update()
{
em = emf.createEntityManager(); <---- here
SomeObj s = em.find(SomeObj.class, injectableObj.getId());
s.setSomeObj(injectableObj.getSomeObj());
}
public void delete()
{
em = emf.createEntityManager(); <---- here
SomeObj s = em.find(SomeObj.class, injectableObj.getId());
em.remove(s);
}
问题:无论如何都要注入EntityManager吗?
答案 0 :(得分:1)
答案 1 :(得分:0)
您可以使用注射。我这样用它:
@PersistenceContext(unitName = "some_jndi_name")
private EntityManager em;