[java] petite problème avec JPA helps please

Résolu
marwen109 Messages postés 63 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 26 mars 2012 - 17 janv. 2012 à 10:06
marwen109 Messages postés 63 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 26 mars 2012 - 17 janv. 2012 à 11:09
Bonjour,
j'ai un problème avec JPA j'explique :
j'ai crée un projet sous netbeans "Java Application" , ensuite clic droite sur le package "class entité prevenant de la base de donnée" ,j'ai choisi la B.D, c'est bon l'entité est crée avec les getter et setter et les attributs le la B.D
enfin clic droite sur le méme package "JPA Controller From Entity classes" et j'ai choisi l'entité crée tout à l'heure, le fichier est généré avec les methodes d'interaction avec la B.D...
enfin mon probléme c'est avec le constructeur de la class "TableeJpaController":



public TableeJpaController(EntityManagerFactory emf){ 
... 
} 


par exemple pour inserer un enregistrement dans la base de donnée je doit instancier une entité dans la methode "Main" , dans mon exemple j'ai "Tablee" (Tablee aussi c'est le nom de la table de B.D avec deux attr id et nom) ensuite invoquer la methode "create(Tablee tablee)" de la classe "TableeJpaController" pour l'inserer :

Tablee t = new Tablee(1,"marwen"); 
//la suite ?? 


une image de mon projet:

TableeJpaController
ensuite je suis bloqué a ce stade car je ne connait pas comment instancier la classe "TableeJpaController"
plutot comment instancier "EntityManagerFactory"... voilà
Merci d'avance de votre aide j'attend vivement des réponses :))

1 réponse

marwen109 Messages postés 63 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 26 mars 2012
17 janv. 2012 à 11:09
une début de solution :


public class Test {

/**
* @param args the command line arguments
*/
public static void main(String[] args) throws PreexistingEntityException, Exception {
// TODO code application logic here
EntityManagerFactory emf = Persistence.createEntityManagerFactory("testPU");
Tablee t=new Tablee(5,"marwen");
TableeJpaController tjc=new TableeJpaController(emf);

tjc.create(t);
System.out.println("succeed! l'objet est inséré");


}
}




ici "testPU" est déclaré dans mon fichier persistance.xml voyez plutôt:





org.eclipse.persistence.jpa.PersistenceProvider


test.Tablee
















lorsque j'exécute ce code un message d'erreur comme suit :


[EL Info]: 2012-01-17 11:02:40.856--ServerSession(13786588)--EclipseLink, version: Eclipse Persistence Services - 2.3.0.v20110604-r9504
[EL Severe]: 2012-01-17 11:02:40.871--ServerSession(13786588)--Local Exception Stack:
Exception [EclipseLink-4003] (Eclipse Persistence Services - 2.3.0.v20110604-r9504): org.eclipse.persistence.exceptions.DatabaseException
Exception Description: Configuration error. Class [org.apache.derby.jdbc.ClientDriver] not found.
Exception in thread "main" javax.persistence.PersistenceException: Exception [EclipseLink-4003] (Eclipse Persistence Services - 2.3.0.v20110604-r9504): org.eclipse.persistence.exceptions.DatabaseException
Exception Description: Configuration error. Class [org.apache.derby.jdbc.ClientDriver] not found.
at org.eclipse.persistence.exceptions.DatabaseException.configurationErrorClassNotFound(DatabaseException.java:82)
at org.eclipse.persistence.sessions.DefaultConnector.loadDriverClass(DefaultConnector.java:267)
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:501)
at org.eclipse.persistence.sessions.DefaultConnector.connect(DefaultConnector.java:85)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getDatabaseSession(EntityManagerFactoryDelegate.java:188)
at org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:162)
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:582)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:206)
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:472)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getDatabaseSession(EntityManagerFactoryDelegate.java:188)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.createEntityManagerImpl(EntityManagerFactoryDelegate.java:277)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:290)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:268)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.createEntityManagerImpl(EntityManagerFactoryDelegate.java:277)
at test.TableeJpaController.getEntityManager(TableeJpaController.java:30)
at test.TableeJpaController.create(TableeJpaController.java:36)
at test.Test.main(Test.java:28)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:290)

[EL Info]: 2012-01-17 11:02:40.871--ServerSession(13786588)--EclipseLink, version: Eclipse Persistence Services - 2.3.0.v20110604-r9504
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:268)
[EL Severe]: 2012-01-17 11:02:40.871--ServerSession(13786588)--Local Exception Stack:
at test.TableeJpaController.getEntityManager(TableeJpaController.java:30)
at test.TableeJpaController.findTablee(TableeJpaController.java:121)
Exception [EclipseLink-4003] (Eclipse Persistence Services - 2.3.0.v20110604-r9504): org.eclipse.persistence.exceptions.DatabaseException
at test.TableeJpaController.create(TableeJpaController.java:41)
at test.Test.main(Test.java:28)
Exception Description: Configuration error. Class [org.apache.derby.jdbc.ClientDriver] not found.
Caused by: Exception [EclipseLink-4003] (Eclipse Persistence Services - 2.3.0.v20110604-r9504): org.eclipse.persistence.exceptions.DatabaseException
at org.eclipse.persistence.exceptions.DatabaseException.configurationErrorClassNotFound(DatabaseException.java:82)
Exception Description: Configuration error. Class [org.apache.derby.jdbc.ClientDriver] not found.
at org.eclipse.persistence.sessions.DefaultConnector.loadDriverClass(DefaultConnector.java:267)
at org.eclipse.persistence.sessions.DefaultConnector.connect(DefaultConnector.java:85)
at org.eclipse.persistence.exceptions.DatabaseException.configurationErrorClassNotFound(DatabaseException.java:82)
at org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:162)
at org.eclipse.persistence.sessions.DefaultConnector.loadDriverClass(DefaultConnector.java:267)
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:582)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:206)
at org.eclipse.persistence.sessions.DefaultConnector.connect(DefaultConnector.java:85)
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:472)
at org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:162)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getDatabaseSession(EntityManagerFactoryDelegate.java:188)
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:582)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.createEntityManagerImpl(EntityManagerFactoryDelegate.java:277)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:206)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:290)
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:472)
... 8 more
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:268)
at test.TableeJpaController.getEntityManager(TableeJpaController.java:30)
at test.TableeJpaController.findTablee(TableeJpaController.java:121)
at test.TableeJpaController.create(TableeJpaController.java:41)
at test.Test.main(Test.java:28)

Java Result: 1




Merci !
3
Rejoignez-nous