[Hibernate] Problème modification clé prim/étrangère (Cascade)
nyyko
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
nyyko Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
nyyko Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voilà je suis actuellement entrain de faire un projet avec hibernate en java.
Mon application est connecté à une base de donnée où j'ai deux tables.
Une table Medicament, 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 :
Et voici une partie de code de mes models Famille et medicament :
Médicament :
Famille :
Et voici le code quand je modifie ma famille :
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 en cascade mais je ne sais pas comment résoudre le problème, c'est pour cela que je viens vers vous.
Merci d'avance,
Voilà je suis actuellement entrain de faire un projet avec hibernate en java.
Mon application est connecté à une base de donnée où j'ai deux tables.
Une table Medicament, 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 :
2353 [main] INFO org.hibernate.impl.SessionFactoryObjectFactory - Not binding factory to JNDI, no JNDI name configured java.lang.NullPointerException at net.gui.AjoutFamille$3.widgetSelected(AjoutFamille.java:174) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4169) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3758) at net.gui.AjoutFamille.open(AjoutFamille.java:78) at net.gui.ListObjets$2.widgetSelected(ListObjets.java:174) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4169) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3758) at net.gui.ListObjets.open(ListObjets.java:108) at net.gui.PageAccueil$12.linkActivated(PageAccueil.java:576) at org.eclipse.ui.forms.widgets.AbstractHyperlink.handleActivate(AbstractHyperlink.java:233) at org.eclipse.ui.forms.widgets.ImageHyperlink.handleActivate(ImageHyperlink.java:199) at org.eclipse.ui.forms.widgets.AbstractHyperlink.handleMouseUp(AbstractHyperlink.java:327) at org.eclipse.ui.forms.widgets.AbstractHyperlink.access$2(AbstractHyperlink.java:311) at org.eclipse.ui.forms.widgets.AbstractHyperlink$4.handleEvent(AbstractHyperlink.java:125) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4169) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3758) at net.gui.PageAccueil$1.run(PageAccueil.java:72) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at net.gui.PageAccueil.open(PageAccueil.java:63) at net.gui.PageAccueil.main(PageAccueil.java:52)
Et voici une partie de code de mes models Famille et medicament :
Médicament :
@ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "famCode", nullable = false) public Famille getFamille() { return this.famille; } public void setFamille(Famille famille) { Famille oldValue = this.famille; this.famille = famille; firePropertyChange("famille", oldValue, famille); }
Famille :
@OneToMany(fetch = FetchType.LAZY, mappedBy = "famille", cascade = { CascadeType.ALL }, orphanRemoval = true) public Set<Medicament> getMedicaments() { return this.medicaments; } public void setMedicaments(Set<Medicament> medicaments) { this.medicaments = medicaments; }
Et voici le code quand je modifie ma famille :
Transaction transaction = session.beginTransaction(); Famille maFamille = (Famille) session.get(Famille.class,fam.getFamCode()); maFamille.setFamCode(textCodeFamille.getText()); maFamille.setFamLibelle(textLibelleFamille.getText()); transaction.commit(); 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 en cascade mais je ne sais pas comment résoudre le problème, c'est pour cela que je viens vers vous.
Merci d'avance,
A voir également:
- [Hibernate] Problème modification clé prim/étrangère (Cascade)
- Clé usb non détectée - Guide
- Clé windows 8 - Guide
- Liste déroulante en cascade - Guide
- Suivi de modification word - Guide
- Formater clé usb - Guide