2

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

然而,当我在 Eclipse IDE 中运行我的 appln frm 时,我看到了这个错误: javax.persistence.PersistenceException: No Persistence provider for EntityManager named XX

在 Eclipse 中,我关注库: hibernate3.jar hibernate-jpa-2.0-api-1.0.0.Final.jar hibernate-entitymanager-3.6.0.Final.jar 和其余的支持 jars...

我的 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 中出现此错误?谢谢

4

3 回答 3

3

所以解决方案

在 Eclipse > Properties > Java Build Path
Source 选项卡中 - 有: Excluded: META-INF/
这导致 META-INF 目录被完全忽略,并且没有找到 persistence.xml。
删除 Excluded:META-INF/ 行后,现在成功找到 persistence.xml。

是如何排除的:META-INF/ 最终出现在 Java Build Path > 'Source' 选项卡中?
早些时候在“库”选项卡下,我已经完成:“添加类文件夹”:src/META-INF
这会自动导致“源”选项卡下的排除:META-INF/。

希望这可以帮助某人。

于 2013-08-14T17:42:18.113 回答
1

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

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

于 2013-08-14T15:11:09.510 回答
0

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

{CLASS_PATH}/META-INF/persistence.xml 
于 2013-08-14T14:10:10.597 回答