2015-08-21 4 views
0

J'essaie de développer une application Web Java EE en utilisant JPA pour gérer la base de données.Non Fournisseur de persistance pour EntityManager nommé test

Lorsque je tente de récupérer les lignes de ma base de données que j'ai une erreur:

« Aucun fournisseur de persistance pour le test nommé EntityManager »

Le code de ma fonction à l'aide JPA est:

EntityManagerFactory emf = Persistence.createEntityManagerFactory("test");  
    EntityManager em =emf.createEntityManager();   
    EntityTransaction tx = em.getTransaction(); 
    try { 
     tx.begin(); 
      @SuppressWarnings("unchecked") 
      List<InputHStock> iph = em.createQuery("from Student").getResultList(); 
      for (Iterator<InputHStock> iterator = iph.iterator(); iterator.hasNext();) { 
      InputHStock student = (InputHStock) iterator.next(); 
      System.out.println(student.getLocationCode()); 
      } 
      tx.commit(); 
     } catch (Exception e) { 
      tx.rollback(); 
     } 
} 

Mon fichier persistence.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.1" 
xmlns="http://xmlns.jcp.org/xml/ns/persistence" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence 
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"> 
    <persistence-unit name="test"> 
    <class>application.InputHStock</class> 
    <properties> 
     <property name="javax.persistence.jdbc.driver"  value="oracle.jdbc.driver.OracleDriver" /> 
     <property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@localhost:1521:xe" /> 
     <property name="javax.persistence.jdbc.user" value="testSQL" /> 
     <property name="javax.persistence.jdbc.password" value="testpwd1" /> 
     <property name="eclipselink.ddl-generation" value="create-tables" /> 
     <property name="eclipselink.ddl-generation.output-mode" value="database" /> 
     </properties> 
    </persistence-unit> 
</persistence> 

Voici mon arborescences dans Eclipse:

enter image description here

J'ai aussi essayé d'utiliser l'outil Eclipse pour inclure JPA mais sans succès.

Notez que la connexion à la base de données fonctionne car je peux récupérer mes données lors de l'utilisation directe de JDBC.

Répondre

0

Votre persistence.xml ne dispose pas d'un fournisseur de persistance. Lorsque vous utilisez EclipseLink, ajoutez

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

à l'intérieur de la balise persistence-unit.

+0

Merci. J'ai ajouté cette ligne à mon fichier .xml de persistance mais j'obtiens toujours l'erreur – Soji

+0

Avez-vous ajouté le jar de lien d'éclipse? – Smutje

+0

Oui, je l'ai ajouté à la ressource. – Soji