找不到Hibernate JPA项目的persistence.xml

Bea*_*ast 2 java eclipse hibernate jpa

嗨,我是Hibernate JPA的新手.我正在使用eclipse kepler 4.3.2并创建一个简单的java项目.我没有使用maven来编译项目.我有以下persistence.xml位于项目的src文件夹中

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    version="2.0"
    xmlns="http://java.sun.com/xml/ns/persistence"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" >
    <persistence-unit name="rawsjpa" transaction-type="RESOURCE_LOCAL">
        <!-- <class>com.mumz.test.hibernatesearch.entitybeans.MHSBookEntityBean</class>
        <class>com.mumz.test.hibernatesearch.entitybeans.MHSBookShelfEntityBean</class> -->
        <properties>
            <property name="hibernate.show_sql" value="true"/>
            <property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
            <property name="hibernate.connection.password" value="Test2@cdn"/>
            <property name="hibernate.connection.url" value="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rschcdndb1d.nam.nsroot.net)(PORT=1526))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=OSRDD1)))"/>
            <property name="hibernate.connection.username" value="AW"/>
            <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle8iDialect"/>
        </properties>
    </persistence-unit>
</persistence>
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建EntityManager的以下示例主程序.

import javax.persistence.EntityManager;
import javax.persistence.Persistence;

/**
 * 
 */

/**
 * @author jp48346
 *
 */
public class TestRawsConnection {

    public static void main(String args[]){
        EntityManager entityManager = Persistence.createEntityManagerFactory("rawsjpa").createEntityManager();
        if(entityManager!=null){
            System.out.println("************* EntityManager is obtained *****************");
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

下面是eclipse项目.classpath文件

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry excluding="main/resources/META-INF/" kind="src" path="src"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
    <classpathentry kind="lib" path="C:/Users/jp48346/.m2/repository/org/hibernate/hibernate-entitymanager/4.2.17.Final/hibernate-entitymanager-4.2.17.Final.jar"/>
    <classpathentry kind="lib" path="C:/Users/jp48346/.m2/repository/org/hibernate/common/hibernate-commons-annotations/4.0.2.Final/hibernate-commons-annotations-4.0.2.Final.jar"/>
    <classpathentry kind="lib" path="C:/Users/jp48346/.m2/repository/org/hibernate/javax/persistence/hibernate-jpa-2.0-api/1.0.1.Final/hibernate-jpa-2.0-api-1.0.1.Final.jar"/>
    <classpathentry kind="lib" path="C:/Users/jp48346/.m2/repository/org/hibernate/hibernate-core/4.2.17.Final/hibernate-core-4.2.17.Final.jar"/>
    <classpathentry kind="lib" path="C:/Users/jp48346/.m2/repository/org/jboss/logging/jboss-logging/3.1.0.GA/jboss-logging-3.1.0.GA.jar"/>
    <classpathentry kind="lib" path="C:/Users/jp48346/.m2/repository/javax/transaction/jta/1.1/jta-1.1.jar"/>
    <classpathentry kind="lib" path="C:/Users/jp48346/.m2/repository/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar"/>
    <classpathentry kind="output" path="bin"/>
</classpath>
Run Code Online (Sandbox Code Playgroud)

当我尝试执行程序时,我得到以下异常

May 26, 2015 8:52:17 PM org.hibernate.annotations.common.Version <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.2.Final}
May 26, 2015 8:52:18 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.2.17.Final}
May 26, 2015 8:52:18 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
May 26, 2015 8:52:18 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
May 26, 2015 8:52:18 PM org.hibernate.ejb.Ejb3Configuration configure
INFO: HHH000318: Could not find any META-INF/persistence.xml file in the classpath
Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named rawsjpa
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:69)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
    at TestRawsConnection.main(TestRawsConnection.java:15)
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我在哪里放置persistence.xml来解决上述问题?

fra*_*sti 6

persistence.xml文件应驻留在名为的文件夹中META-INF.如果您正在使用Maven,请将其放入src/main/resources/META-INF(如果不存在则创建文件夹).

  • 正如他没有maven所说的那样你应该创建src - > META-INF - > persistence.xml (4认同)