Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1058 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [JAVA/Hibernate] Problème modification clé primaire/étrangère

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JAVA/Hibernate] Problème modification clé primaire/étrangère

n°2192463
nyyko
Posté le 01-06-2013 à 12:48:33  profilanswer
 

Bonjour,
 
Voilà je suis actuellement entrain de réaliser un projet avec hibernate en java.
Mon application est connecté à une base de donnée où j’ai deux tables.
Une table Médicament, qui contient différentes informations sur mes médicaments.
Ainsi qu’une table Famille qui correspond à la famille de médicaments.
Autrement dit, chaque médicament appartient à une et une seule famille. Et chaque famille contient 0 à plusieurs médicaments.
Mon application a donc pour but de pouvoir modifier les différentes familles et les différentes médicaments.
Seulement quand je modifie la clé primaire de ma famille qui correspond donc à une clé étrangère dans mon médicament. Cela me met cette erreur :  

Code :
  1. 2353 [main] INFO org.hibernate.impl.SessionFactoryObjectFactory - Not binding factory to JNDI, no JNDI name configured
  2. java.lang.NullPointerException
  3. at net.gui.AjoutFamille$3.widgetSelected(AjoutFamille.java:174)
  4. at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
  5. at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
  6. at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
  7. at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4169)
  8. at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3758)
  9. at net.gui.AjoutFamille.open(AjoutFamille.java:78)
  10. at net.gui.ListObjets$2.widgetSelected(ListObjets.java:174)
  11. at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
  12. at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
  13. at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
  14. at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4169)
  15. at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3758)
  16. at net.gui.ListObjets.open(ListObjets.java:108)
  17. at net.gui.PageAccueil$12.linkActivated(PageAccueil.java:576)
  18. at org.eclipse.ui.forms.widgets.AbstractHyperlink.handleActivate(AbstractHyperlink.java:233)
  19. at org.eclipse.ui.forms.widgets.ImageHyperlink.handleActivate(ImageHyperlink.java:199)
  20. at org.eclipse.ui.forms.widgets.AbstractHyperlink.handleMouseUp(AbstractHyperlink.java:327)
  21. at org.eclipse.ui.forms.widgets.AbstractHyperlink.access$2(AbstractHyperlink.java:311)
  22. at org.eclipse.ui.forms.widgets.AbstractHyperlink$4.handleEvent(AbstractHyperlink.java:125)
  23. at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
  24. at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
  25. at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4169)
  26. at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3758)
  27. at net.gui.PageAccueil$1.run(PageAccueil.java:72)
  28. at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
  29. at net.gui.PageAccueil.open(PageAccueil.java:63)
  30. at net.gui.PageAccueil.main(PageAccueil.java:52)


 
 
 
Et voici une partie de code de mes models Famille et medicament :  
Médicament :  
       

Code :
  1. @ManyToOne(fetch = FetchType.EAGER)
  2. @JoinColumn(name = "famCode", nullable = false)
  3. public Famille getFamille() {
  4.  return this.famille;
  5. }
  6. public void setFamille(Famille famille) {
  7.  Famille oldValue = this.famille;
  8.  this.famille = famille;
  9.  firePropertyChange("famille", oldValue, famille);
  10. }


 
Famille :  
     

Code :
  1. @OneToMany(fetch = FetchType.LAZY, mappedBy = "famille", cascade = { CascadeType.ALL }, orphanRemoval = true)
  2. public Set<Medicament> getMedicaments() {
  3.  return this.medicaments;
  4. }
  5. public void setMedicaments(Set<Medicament> medicaments) {
  6.  this.medicaments = medicaments;
  7. }


 
 
Et voici le code quand je modifie ma famille :  
 

Code :
  1. Transaction transaction = session.beginTransaction();
  2.                Famille maFamille = (Famille) session.get(Famille.class,       fam.getFamCode());
  3.        maFamille.setFamCode(textCodeFamille.getText());
  4.        maFamille.setFamLibelle(textLibelleFamille.getText());
  5.  transaction.commit();
  6.  session.update(maFamille);


 
 
Je voudrais donc que quand je modifie la clé primaire de famille ca la modifie pour tous les médicaments. Je penses donc qu’il y a un problème dans l’update den cascade mais je ne sais pas comment résoudre le problème, c’est pour cela que je viens vers vous.
 
Merci d'avance,


Message édité par nyyko le 01-06-2013 à 12:53:27
mood
Publicité
Posté le 01-06-2013 à 12:48:33  profilanswer
 

n°2192585
LeRiton
Posté le 03-06-2013 à 10:24:58  profilanswer
 

Tu peux nous indiquer quelle ligne correspond à AjoutFamille.java:174 ?
 
Avec une NPE à cet endroit, ça m'a l'air d'être une bonne piste :o

n°2192590
nyyko
Posté le 03-06-2013 à 11:37:37  profilanswer
 

Il s'agit de la ligne :  
 
maFamille.setFamCode(textCodeFamille.getText());
 
Donc dans la modification de ma famille. Quand je modifie mon codeFamille qui est donc ma clé primaire
pour famille et ma clé étrangere pour medicament


Message édité par nyyko le 03-06-2013 à 11:39:10
n°2192592
LeRiton
Posté le 03-06-2013 à 11:48:06  profilanswer
 

D'accord, et c'est lequel des deux qui est nul, maFamille ou textCodeFamille ?

n°2192595
nyyko
Posté le 03-06-2013 à 12:17:23  profilanswer
 

Mais enfete aucun est null, c'est juste que la modification en cascade ne doit pas se faire ?

n°2192607
LeRiton
Posté le 03-06-2013 à 13:48:48  profilanswer
 

C'est une question ou tu as testé ?
Poste les codes de Famille et Médicament, il nous manque les getters et setters de famCode au minimum.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [JAVA/Hibernate] Problème modification clé primaire/étrangère

 

Sujets relatifs
Modification CSS sur un theme WordpressPhp , problème compréhension
Problème changement d'image lors d'un onclickProblème jQuery.ajax( et php
problème FFT sous codeblocksProbleme survenue sur mon site wordpress
java android eclipse[Java]Aide affichage 3d dynamique
Problème importationprobleme langage C
Plus de sujets relatifs à : [JAVA/Hibernate] Problème modification clé primaire/étrangère


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR