Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaSE应用程序中使用JPA EntityManager_Java_Hibernate_Jpa_Entitymanager - Fatal编程技术网

如何在JavaSE应用程序中使用JPA EntityManager

如何在JavaSE应用程序中使用JPA EntityManager,java,hibernate,jpa,entitymanager,Java,Hibernate,Jpa,Entitymanager,我正在开发一个JavaSE应用程序,我想使用JPA EntityManager来管理数据库操作。通过搜索,我发现需要创建一个persistence.xml文件。但我不知道该把它放在哪里。我的搜索结果显示它应该放在webRoot\META-INF中,但我的项目它不是J2EE项目,所以它没有webRoot或META-INF目录。以下是获取实体管理器的代码: private static EntityManagerFactory factory = Persistence.createEntityM

我正在开发一个JavaSE应用程序,我想使用JPA EntityManager来管理数据库操作。通过搜索,我发现需要创建一个
persistence.xml
文件。但我不知道该把它放在哪里。我的搜索结果显示它应该放在
webRoot\META-INF
中,但我的项目它不是J2EE项目,所以它没有webRoot或META-INF目录。以下是获取实体管理器的代码:

 private static EntityManagerFactory factory = Persistence.createEntityManagerFactory("unitName");
 protected EntityManager entityManager =  entityManager = factory.createEntityManager();
但这总是导致
javax.persistence.PersistenceException
异常,并返回以下消息:

No Persistence provider for EntityManager named unitName
我怎样才能解决这个问题


感谢您的关注。

首先,您可以创建这样的META-INF文件:

但如果您使用的是Netbeans,那么当您从数据库创建实体类时,该文件夹将自动创建,您可以尝试这样做


祝你好运。

因为你正在使用Hibernate,你可以看到它的:

在爪哇™ SE环境持久性提供程序(本例中为Hibernate)需要通过META-INF/persistence.xml资源名称的类路径查找来定位所有JPA配置文件

将persistence.xml放到

  • /src/main/resources/META-INF/persistence.xml
    如果您使用maven
  • /src/META-INF/persistence.xml
    如果不使用maven

完成后,上面的教程还将告诉您如何配置以下内容并逐步使用JPA。检查您是否需要任何持久性模板。

JPA规范说的只是META-INF,所以从类路径的根目录将其放入META-INF中。谢谢。解决方案
从数据库创建实体类
解决了我的问题。但是,没有persistence.xml的实体管理器是否可以使用呢?我认为没有persistence.xml的JPA或Hibernet是不可能使用的