javax.persistence.PersistenceException:没有名为XX的EntityManager的持久性提供程序

时间:2013-08-14 14:05:28

标签: java eclipse hibernate jpa

我在Eclipse(Helios)IDE中有一个简单的JPA / Hibernate项目。 我已将persistence.xml放在Project> resources目录中。 在Eclipse中,我已将此目录(Project \ resources)添加到类路径中。

然而,当我在Eclipse IDE中运行我的appln frm时,我看到了这个错误: javax.persistence.PersistenceException:没有名为XX的EntityManager的持久性提供程序

在Eclipse中,我关注了库: hibernate.jar文件 冬眠-JPA-2.0-API-1.0.0.Final.jar 休眠-的EntityManager,3.6.0.Final.jar 和休息是支持罐子......

我的persistence.xml是:

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
    version="1.0">

    <persistence-unit name="XX" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <!-- the JNDI data source -->
        <non-jta-data-source>java:comp/env/jdbc/tutorialDS</non-jta-data-source>
        <properties>
            ...
        </properties>
    </persistence-unit>
</persistence>

Eclipse IDE中导致此错误的原因是什么? 感谢

3 个答案:

答案 0 :(得分:3)

所以解决方案

在Eclipse中&gt;属性&gt; Java构建路径
来源标签 - 有:排除:META-INF /
这导致META-INF目录被完全忽略,并且找不到persistence.xml 删除Excluded:META-INF / line后,现在可以成功找到persistence.xml。

如何排除:META-INF /最终在Java构建路径中&gt; “来源”标签?
在“Libraries”选项卡的早些时候,我做了:'Add Class Folder':src / META-INF
这会自动导致排除:META-INF /在“来源”标签下。

希望这有助于某人。

答案 1 :(得分:1)

persistence.xml必须放在META-INF目录中。

编辑:不要忘记包含数据库驱动程序库。

答案 2 :(得分:0)

您是否尝试将此persistence.xml文件保留在类路径META-INF文件夹中。

{CLASS_PATH}/META-INF/persistence.xml