1

CRUD手順を実行している場合、これを行う必要がありますか(トランザクションタイプ:JTAではなくRESOURCE_LOCAL)

@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 を注入する方法はありますか?

4

2 に答える 2

1

たぶん、ここで例を探してみてください:

インジェクション EntityManager

私は使用することを好みます:@PersistenceContext

于 2012-07-31T14:12:19.437 に答える
0

インジェクションを使用できます。私はこのように使用します:

@PersistenceContext(unitName = "some_jndi_name")
private EntityManager em;
于 2012-07-31T14:13:38.907 に答える