normalian blog

Let's talk about Microsoft Azure, ASP.NET and Java!

EntityManager使用時の注意点

  • Session Bean 使用時に、EJBコンテナ上で稼働しない場合は下記のコードを利用するとクラスのインスタンス化に失敗し、例外が発生する。
@PersistenceContext(unitName="helloworld")
protected EntityManager em;
  • 上記例外(インスタンス化例外)を避けるためには、ローカルリソースを利用する旨を記載した persistecen.xml を作成して EntityManager を利用する。
EntityManagerFactory factory = 
  Persistence.createEntityManagerFactory(<META-INF/persistence.xmlで参照されるpersistence-unitタグのname属性>);
EntityManager em = factory.createEntityManager();
  • EntityManagerを用いた簡単なSQL文の発行
List<User> users = em.createQuery("from User user").getResultList();