2015-07-28 3 views
0

Эй, я изучаю этот материал, я действительно не понимаю все это, и у меня есть проблема, я не знаю, что писать в теге провайдера в persistence.xmlКак настроить persistence.xml тег поставщика

Вот мой persistence.xml и pom.xml файлы:

pom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 

<groupId>com.test.jpa</groupId> 
<artifactId>JPAProject</artifactId> 
<version>1.0-SNAPSHOT</version> 
<packaging>war</packaging> 

<dependencies> 
    <dependency> 
     <groupId>javax</groupId> 
     <artifactId>javaee-api</artifactId> 
     <version>7.0</version> 
    </dependency> 

    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.36</version> 
    </dependency> 
</dependencies> 

<build> 
    <finalName>JPAProject</finalName> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.4</version> 
     </plugin> 
    </plugins> 
</build> 

persistence.xml

<?xml version="1.0" encoding="UTF-8"?> 

<persistence version="2.0" 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_2_0.xsd"> 

<persistence-unit name="Database" transaction-type="RESOURCE_LOCAL"> 
    <class>models.Employee</class> 
    <provider>WHAT TO WRITE HERE ?</provider> 
    <properties> 
     <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/jpa"/> 
     <property name="javax.persistence.jdbc.user" value="root"/> 
     <property name="javax.persistence.jdbc.password" value="root"/> 
     <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/> 
    </properties> 
</persistence-unit> 

ответ

2

В provider тэгом вам необходимо включить поставщика конкретных PersistenceProvider реализации.

См. this discussion; вы можете получить представление об этом.

Ответ на свой вопрос: -

Если вы хотите использовать реализацию EclipseLink из JPA, пожалуйста, используйте тег provider как below--

<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 

ИЛИ

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

для реализации Hibernet из JPA.

+0

Так что я должен добавить зависимость для использования org.hibernate.ejb.HibernatePersistence например? Я попробовал, и это работает, единственная проблема заключается в том, что он говорит, что HibernatePersistence устарел. Что я должен использовать вместо этого, то есть из спящего режима? – Greyshack

+0

Вы можете напрямую использовать 'HibernatePersistenceProvider' в своем провайдере. См. Документацию по API: http: //docs.jboss.org/hibernate/orm/5.0/javadocs/org/hibernate/ejb/HibernatePersistence.html –

+0

Этот тег не является обязательным. – karlihnos