首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不使用注释的情况下在JavaEE 6中获得容器管理实体管理器

如何在不使用注释的情况下在JavaEE 6中获得容器管理实体管理器
EN

Stack Overflow用户
提问于 2015-09-08 15:42:54
回答 2查看 348关注 0票数 0

如何在不使用注释的情况下在JavaEE 6中获得容器管理实体管理器

EN

回答 2

Stack Overflow用户

发布于 2015-09-08 15:49:39

您可以尝试使用JNDI获取实体管理器,如下所述:http://docs.oracle.com/cd/E16439_01/doc.1013/e13981/usclient005.htm#CIHFIDHI

另外,请参阅JPA spec的第7.2节(“获取EntityManager")。

票数 2
EN

Stack Overflow用户

发布于 2015-09-08 22:32:36

我找到了这个在Glassfish 3.1上工作的解决方案(感谢Thomas的链接):

代码语言:javascript
复制
@Stateless
@PersistenceContext(unitName = "myUnit", name="persistence/myUnit")
public class MyLibraryService {

   @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
   public String getFirstName(String userId) {
     EntityManager em = (EntityManager) new InitialContext().lookup("java:comp/env/persistence/myUnit");

     TypedQuery<String> tq = em.createQuery("select fn from Person p where p.id = :userId", String.class);
     tq.setParameter("userId", userId);
     ...
   }

}

其中,myUnit是在persistence.xml中定义的设备名称。

MyLibraryService可以简单地注入到其他类中:

代码语言:javascript
复制
@Inject
private MyLibraryService myLibraryService;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32451981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档