내을 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를 사용하고있었습니다. 이 도움을 바랍니다!