如果您正在执行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的方法?
也许可以在这里查找示例:
注入EntityManager
我更喜欢使用:通过@PersistenceContext
注入
您可以使用注入。我是这样使用的:
@PersistenceContext(unitName = "some_jndi_name")
private EntityManager em;