2016-12-22 12 views
1

JPAのプロジェクトで作業していますが、GlassFishサーバーを使用して既に埋め込まれているテーブルを含むMySQLデータベースに接続しました。 SELECTクエリでは、テーブルの列を表示するためにテストするためのテストクラスが、私はまだ私は私のpersistence.xmlファイルを設定しているにもかかわらず、持続性プロバイダの問題を抱えているスレッド "main"の例外javax.persistence.PersistenceException:TESTという名前のEntityManagerの永続プロバイダがありません

エンティティ:

package org.planetjpa; 
import java.io.Serializable; 
import java.util.Date; 
import javax.persistence.*; 

@Entity 
@Table(name="films", schema = "database") 
public class Films implements Serializable { 

    @[email protected](name="id") 
    private int id_film; 
    @Column(name="titre") 
    private String nom_film; 
    @Column(name="realisateur") 
    private String realisateur; 
    @Column(name="date") 
    private Date date_film; 
    @Column(name="cadre") 
    private String cadre; 
    @Column(name="lieu") 
    private String lieu_film; 
    @Column(name="arrondissement") 
    private int arrondissement; 
    @Column(name="adresse") 
    private String adresse; 
    @Column(name="cinema") 
    @SequenceGenerator(name = "id_Sequence_cinema", sequenceName = "ID_SEQ_CINEMA") 
    private String cinema; 
    @Column(name="prix") 
    private double prix; 
    @Column(name="nb_personne") 
    private int nb_places; 
    private static final long serialVersionUID = 1L; 

public Films() { 
    super(); 
} 


public int getId_film() { 
    return id_film; 
} 

public void setId_film(int id_film) { 
    this.id_film = id_film; 
} 

public String getNom_film() { 
    return nom_film; 
} 

public void setNom_film(String nom_film) { 
    this.nom_film = nom_film; 
} 

public String getRealisateur() { 
    return realisateur; 
} 

public void setRealisateur(String realisateur) { 
    this.realisateur = realisateur; 
} 

public Date getDate_film() { 
    return date_film; 
} 

public void setDate_film(Date date_film) { 
    this.date_film = date_film; 
} 

public String getCadre() { 
    return cadre; 
} 

public void setCadre(String cadre) { 
    this.cadre = cadre; 
} 

public String getLieu_film() { 
    return lieu_film; 
} 

public void setLieu_film(String lieu_film) { 
    this.lieu_film = lieu_film; 
} 

public int getArrondissement() { 
    return arrondissement; 
} 

public void setArrondissement(int arrondissement) { 
    this.arrondissement = arrondissement; 
} 

public String getAdresse() { 
    return adresse; 
} 

public void setAdresse(String adresse) { 
    this.adresse = adresse; 
} 

public String getCinema() { 
    return cinema; 
} 

public void setCinema(String cinema) { 
    this.cinema = cinema; 
} 

public double getPrix() { 
    return prix; 
} 

public void setPrix(double prix) { 
    this.prix = prix; 
} 

public int getNb_places() { 
    return nb_places; 
} 

public void setNb_places(int nb_places) { 
    this.nb_places = nb_places; 
} 

public static long getSerialversionuid() { 
    return serialVersionUID; 
} 
} 

メイン:

package org.test; 

import javax.persistence.EntityManager; 
import javax.persistence.EntityManagerFactory; 
import javax.persistence.EntityTransaction; 
import javax.persistence.*; 

import org.planetjpa.Films; 

import java.util.List; 

public class Test { 
     public static void main(String[] args) { 

Films book = new Films(); 

// Obtains an entity manager and a transaction 
EntityManagerFactory emf = Persistence.createEntityManagerFactory("TEST"); 
EntityManager em = emf.createEntityManager(); 
EntityTransaction tx = em.getTransaction(); 


// Persists the book to the database 
tx.begin(); 
em.persist(book); 
tx.commit(); 


TypedQuery<Films> tq =em.createQuery("Select b from Films b",Films.class); 
List<Films> lb = tq.getResultList(); 
for (Films b:lb) System.out.println("######### " + b.getCinema()); 

//Closes the entity manager and the factory 
//em.close(); 
emf.close(); 

} 
} 

の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" transaction-type="RESOURCE_LOCAL"> 

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


    <class>org.planetjpa.Films</class> 
    <class>org.planetjpa.Lieux</class> 
    <class>org.planetjpa.Scences</class> 



    <properties> 
     <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/> 
     <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/database/projetjsf"/> 
     <property name="javax.persistence.jdbc.username" value="root"/> 
     <property name="javax.persistence.jdbc.password" value="amine1993"/> 


     <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" /> 
     <property name="hibernate.show_sql" value="true" /> 
     <property name="hibernate.hbm2ddl.auto" value="create" /> 
    </properties> 

</persistence-unit> 

私は、同じパッケージにメインとエンティティを入れてみましたが、私はまだ同じ問題を抱えています。

結果:

PersistenceException

+0

あなたは、コードの代わりに、画像として例外を追加することはできますか? –

+0

私はすでにそれをしました – AmineBena17

答えて

0

ここでは、例外コードです:

Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named testJPA 
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:84) 
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54) 
at org.test.Test.main(Test.java:24) 
関連する問題