Précédent   Forum du club des développeurs et IT Pro > Java > Général Java > Persistance
Persistance Forum d'entraide pour la persistance en Java : base de donnée, xml, mapping orienté objet, ... Posez vos questions sur iBatis, JDO, XmlBeans, Castor, JAXB, XStream, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 23/11/2012, 11h30   #1
DevForFun
Invité régulier
 
Inscription : mai 2009
Messages : 26
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 26
Points : 8
Points : 8
Par défaut pb de conception hibernate / synchro des donnés

Bonjour,

J'ai 2 "gros" problemes, mon application 3 classes:
- Facture
- Categorie
- Articles

1 Facture à N Catégorie
1 Categorie à N Categorie et N Articles
(donc la classe catégorie à 2 listes)

Le 1er probleme est que lorsque l'instance d'une facture est chargé, il me met dans la collection catégorie de la classe facture TOUTES les catégories (parents et enfants alors que je ne veux que les parents)

Le 2e probleme, est que lorsque je déplace dans mon model une categorie et que je fais sauvegarder, j'ai une erreur hibernate qui me dit que je ne peux supprimer une categorie qui va être sauvegardé ensuite.
Je ne vois pas pourquoi il veut la supprimer puisqu'il devrait juste faire un update.

Petite précision, je sauvegarde par à la volé, que lorsque le user appuis sur "save", cela fait un update de la facture.

Merci à vous
DevForFun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2012, 12h16   #2
tchize_
Expert Confirmé Sénior
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 18 284
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 18 284
Points : 32 759
Points : 32 759
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
Citation:
Envoyé par DevForFun Voir le message
Le 1er probleme est que lorsque l'instance d'une facture est chargé, il me met dans la collection catégorie de la classe facture TOUTES les catégories (parents et enfants alors que je ne veux que les parents)
Il faut activer le lazy-loady sur le mapping categorie -> catégorie. Par défaut c'est activé, si ce n'est pas le cas, c'est que tu as ajouté une option explicite pour charger les sous catégorie immédiatement.


Citation:
Le 2e probleme, est que lorsque je déplace dans mon model une categorie et que je fais sauvegarder,
Qu'est-ce que tu appelle "déplacer"? Hibernate ne connait que les update, les delete et les add. Model, ça correspond à quoi par rapport à tes trois classes?
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2012, 13h45   #3
DevForFun
Invité régulier
 
Inscription : mai 2009
Messages : 26
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 26
Points : 8
Points : 8
Merci pour la 1er réponse, pour le 2e point c'est vrai que je n'ai pas été très clair.
Supposons qu'une facture à cette structure (je rappel que c'est une liste de categorie):
- Categorie 1
- sous-categorie 1A
- sous-categorie 1B

- Categorie 2
- sous-categorie 2A
- sous-categorie 2B

et que je deplace "sous-categorie 2A" dans "Categorie 1", j'obtiens alors :
- Categorie 1
- sous-categorie 1A
- sous-categorie 1B
- sous-categorie 2A

- Categorie 2
- sous-categorie 2B

A ce stade, quand je fais un update de "Facture" , j'ai une erreur comme quoi je ne peux supprimer un objet qui va etre resauvegardé ensuite.
J'ai comme l'impression qu'hibernate cherche à faire :
- delete sous-categorie 2B
- insert sous-categorie 2B

alors qu'il devrait, je pense, simplement faire un update.

Avez vous une solution ?
DevForFun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2012, 14h09   #4
tchize_
Expert Confirmé Sénior
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 18 284
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 18 284
Points : 32 759
Points : 32 759
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
il faut voir ton mapping pour en dire plus, il y a plein de manière de faire des relations 1 to n dans hibernate, suivant les besoins et donc autant de manière de les gérer. Il faudrait aussi que tu active le show_sql et que tu nous poste tes logs.
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 21h35.


 
 
 
 
Partenaires

Hébergement Web