每次访问数据库时,是否需要创建EntityManager()



如果您正在执行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;

最新更新