"nullPointer exception", je trouve pas l'erreur
Bonjour,
Je suis entrain de faire ma première application en Java:) et j'ai une erreur que je ne comprends pas! Enfin j'ai compris que l'objet était null quelque part mais je comprends pas où!
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at servicescrud.AccesBDD.newTransaction(AccesBDD.java:58)
at servicesFonctionnels.ServicesFonctionnelsPatient.memoriser(ServicesFonctionnelsPatient.java:15)
at controler.ControlerPatient.controle(ControlerPatient.java:18)
L'application est composé comme ça:
Vue
Controler
Modele (avec les services d'appel à la base de données)
Singelton AccesBDD pour l'entityManager.
Je suis débutant donc désolé si quelque chose vous parait pas très pro.
Merci beaucoup pour votre aide.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178
|
package controler;
import toolbox.Message;
import entites.Patient;
import model.Model;
public class ControlerPatient extends AbstractControler{
public ControlerPatient(Model pModel){
super(pModel);
}
public Boolean controle(Patient pPatient) {
Boolean controle = false;
if(pPatient.getPrenom() != null){
this.model.getSfPatient().memoriser(pPatient);
System.out.println(Message.getStatut());
}
return controle;
}
}
package model;
import java.util.Date;
import servicesFonctionnels.IServicesFonctionnels;
import servicesFonctionnels.ServicesFonctionnelsConsultation;
import servicesFonctionnels.ServicesFonctionnelsPatient;
import entites.Consultation;
import entites.Therapeute;
public class Model extends AbstractModel{
private ServicesFonctionnelsPatient sfPatient;
public Model(){
super();
this.sfPatient = new ServicesFonctionnelsPatient();
}
public ServicesFonctionnelsPatient getSfPatient() {
return sfPatient;
}
public void setSfPatient(ServicesFonctionnelsPatient sfPatient) {
this.sfPatient = sfPatient;
}
}
package servicesFonctionnels;
import servicescrud.AccesBDD;
import servicesunitaires.ServicesUnitairesPatient;
import toolbox.Message;
import entites.Patient;
public class ServicesFonctionnelsPatient implements IServicesFonctionnels<Patient>{
private static ServicesUnitairesPatient suPatient = new ServicesUnitairesPatient();
private static AccesBDD singelton = AccesBDD.getInstance();
public void memoriser(Patient pPatient) {
singelton.newTransaction();
suPatient.creer(pPatient);
Message.setStatut(Message.TypeStatut.objetMemorise);
singelton.endTransaction();
}
public Patient editer(Patient pPatient) {
singelton.newTransaction();
Patient patientRecherche = suPatient.valider(pPatient);
if(Message.getStatut() == Message.TypeStatut.objetValide){
Message.setStatut(Message.TypeStatut.objetEdite);
}
singelton.endTransaction();
return patientRecherche;
}
public void modifier(Patient pPatient) {
singelton.newTransaction();
if(Message.getStatut() == Message.TypeStatut.objetEdite){
suPatient.mettreAjour(pPatient);
Message.setStatut(Message.TypeStatut.objetModifie);
}
singelton.endTransaction();
}
public void efface(Patient pPatient) {
singelton.newTransaction();
Patient patientRecherche = suPatient.valider(pPatient);
if(Message.getStatut() == Message.TypeStatut.objetValide){
suPatient.supprimer(patientRecherche);
Message.setStatut(Message.TypeStatut.objetEfface);
}
singelton.endTransaction();
}
}
package servicescrud;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
public class AccesBDD {
public static final String NOM_UNIT = "jpa";
private static AccesBDD singleton = null;
private EntityManagerFactory emf;
private EntityManager em;
private EntityTransaction transaction;
private AccesBDD(){
try{
this.emf = Persistence.createEntityManagerFactory(NOM_UNIT);
this.em = emf.createEntityManager();
} catch (Exception e) {
throw new RuntimeException("Connexion impossible... Verifier le serveur de BDD et le fichier persistence.xml up :"+NOM_UNIT+e.getMessage());
}
}
public static AccesBDD getInstance() {
if (singleton == null){
singleton = new AccesBDD();
}
return singleton;
}
public EntityManager getEntityManager(){
return this.em;
}
public void deconnecte() throws Exception{
if (emf != null){
emf.close();
emf = null;
}
if (em != null){
em.close();
em = null;
}
}
public void endTransaction() {
this.transaction.commit();
}
public void newTransaction() {
this.transaction = this.em.getTransaction();
this.transaction.begin();
}
} |