如何使用@PersistenceContext(EclipseLink)在Java SE中注入EntityManager

时间:2016-06-07 21:03:44

标签: java jpa eclipselink entitymanager persistence.xml

我有一个客户端 - 服务器应用程序,我在我的大学为一个项目做了,我遇到了数据库-JPA Cache同步问题。我正在使用应用程序管理的EntityManager,我从其他帖子中发现它很难使用,因为你总是要小心打开并关闭它。

我发现这个问题的最佳解决方案是使用容器管理的EntityManager,使用@PersitenceContext注释进行初始化,这样我就不用担心EM打开和关闭了。

所以我真正的问题是,如何使用EclipseLink JPA在Java SE中注入EntityManager,因为我从未传递过NullPointerException。我将附上一些这种操作示例的打印屏幕以及我认为应该完成的方式。

对于我的项目,我使用jdk 1.8,基本jpa配置(2.1)和EclipseLink 2.5.x作为平台。在数据库方面,我使用的是MySql-Server而没有应用服务器(这个必须由我开发)。

persistence.xml文件

包含示例的2个类: https://gyazo.com/a7b1a372875a259096dc220653cd5bcd

1 个答案:

答案 0 :(得分:3)

根据您列出的已使用技术,您无法使用容器管理的持久性,因为您没有可以处理注入的容器。我的理解是您不在JEE应用程序服务器中,因此您没有EJB容器。

如果要在独立应用程序中使用JPA,可以执行以下两项操作:

  1. 忘记注入并使用应用程序管理的持久性。
  2. 使用弹簧容器,您仍然可以注入:How to inject JPA EntityManager using spring