Hibernate META-INF位置错误?

时间:2016-02-03 11:30:11

标签: java hibernate persistence.xml

出于某种奇怪的原因,我的Hibernate在META-INF文件夹中找不到我的persistence.xml。我有以下项目结构:

  • SRC
    • eu.bsmusin.pupil.project.db.DataBase.java
    • META-INF / persistence.xml中

我的班级DataBase.java调用方法

Persistence.createEntityManagerFactory("LocalUnit");

该错误表示无法找到名为LocalUnit的持久性单元。我仔细检查了名称和所有其他属性,并尝试了来自互联网的多个示例persistence.xml文件。我相信,Hibernate因某些愚蠢的原因找不到我的meta-inf文件夹。

这是发生在任何人身上还是有人知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

在所有情况下,persistence.xml始终驻留在{root-of-persistence-unit}/META-INF/ directory中。例如,

foo.war:
WEB-INF/classes/META-INF/persistence.xml  //good
WEB-INF/classes/com/foo123/jpa/Project.class
WEB-INF/web.xml
index.jsp

你也可以将实体类和persistence.xml打包到一个库jar中,它打包在war中:WEB-INF / lib

foo.war:
WEB-INF/lib/my-entities.jar
WEB-INF/web.xml
index.jsp

MY-entities.jar:

META-INF/persistence.xml  //good
com/foo123/jpa/Project.class

如果您使用的是maven项目

src/main/resources就是这个地方。说到persistence.xml,它应该放在META-INF文件夹中。所以总结:src/main/resources/META-INF/persistence.xml.