[java] EntityManager에 대한 지속성 제공자가 없습니다.

내을 persistence.xml사용하여 동일한 이름을 가진 TopLink세 이하 META-INF디렉토리. 그런 다음 코드를 호출하여 다음을 수행합니다.

EntityManagerFactory emfdb = Persistence.createEntityManagerFactory("agisdb");

그러나 다음과 같은 오류 메시지가 나타납니다.

2009-07-21 09 : 22 : 41,018 [main] 오류-agisdb라는 EntityManager에 대한 지속성 공급자가 없습니다.
javax.persistence.PersistenceException : agisdb라는 EntityManager에 대한 지속성 제공자가 없습니다.
    javax.persistence.Persistence.createEntityManagerFactory (Persistence.java:89)에서
    javax.persistence.Persistence.createEntityManagerFactory (Persistence.java:60)에서

여기에 persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
    <persistence-unit name="agisdb">
        <class>com.agis.livedb.domain.AddressEntity</class>
        <class>com.agis.livedb.domain.TrafficCameraEntity</class>
        <class>com.agis.livedb.domain.TrafficPhotoEntity</class>
        <class>com.agis.livedb.domain.TrafficReportEntity</class>
        <properties>
            <property name="toplink.jdbc.url" value="jdbc:mysql://localhost:3306/agisdb"/>
            <property name="toplink.jdbc.driver" value="com.mysql.jdbc.Driver"/>
            <property name="toplink.jdbc.user" value="root"/>
            <property name="toplink.jdbc.password" value="password"/>
        </properties>
    </persistence-unit>
</persistence>

클래스 경로에 있어야합니다. 그러나 위의 오류가 발생했습니다.



답변

<persistence-unit name="agisdb">, 퍼시스턴스 프로 바이더의 이름을 정의 :

<provider>org.hibernate.ejb.HibernatePersistence</provider>


답변

"hibernate-entitymanager.jar"응용 프로그램의 클래스 경로에 넣습니다 .
최신 버전 "hibernate-core.jar"의 경우 더 이상 사용되지 않는 대신 사용해야 합니다.hibernate-entitymanager

Eclipse 와 같은 일부 IDE를 실행하는 경우 :Project Properties -> Java Build Path -> Libraries.

그렇지 않으면 /lib응용 프로그램 에 넣으십시오 .


답변

persistence.xml파일이 디렉토리에 있는지 확인하십시오 .<webroot>/WEB-INF/classes/META-INF


답변

내 pom.xml 파일에서 이것을 필요로했습니다.

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>4.2.6.Final</version>
</dependency>


답변

같은 문제에 직면하여 오랫동안 해결책을 찾지 못했습니다. 내 경우에는 교체하는 데 도움이되었습니다.

<provider>org.hibernate.ejb.HibernatePersistence</provider>

<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>

여기 에서 해결책을 찾았 습니다


답변

또 다른 요점이 있습니다. Eclipse RCP 환경에서이 문제가 발생하면 팩토리 생성을 Persistence.createEntityManagerFactory에서new PersistenceProvider().createEntityManagerFactory

이에 대한 자세한 내용 은 ECF 를 참조하십시오 .


답변

어쩌면 <provider>org.hibernate.ejb.HibernatePersistence</provider>항아리에서 다른 공급자를 참조하면서 하나의 공급자를 정의 했을 수도 있습니다 . 저와 함께 일어났습니다 : persistence.xml 공급자는 openjpa 였지만 클래스 경로에서 eclipselink를 사용하고있었습니다. 이 도움을 바랍니다!