marwen109
Messages postés63Date d'inscriptionjeudi 12 août 2010StatutMembreDernière intervention26 mars 2012
-
17 janv. 2012 à 10:06
marwen109
Messages postés63Date d'inscriptionjeudi 12 août 2010StatutMembreDernière intervention26 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 :))
marwen109
Messages postés63Date d'inscriptionjeudi 12 août 2010StatutMembreDernière intervention26 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)