繁体   English   中英

休眠META-INF位置错误?

[英]Hibernate META-INF Location wrong?

由于某些奇怪的原因,我的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文件夹。

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

在所有情况下,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.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM