Hibernate Update

the_smurf Messages postés 283 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 22 juin 2006 - 20 avril 2005 à 12:48
Syruis Messages postés 181 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 28 avril 2009 - 21 avril 2005 à 12:01
Bonjour à tous,


J'utilise hibernate dans un projet J2EE. J'ai un soucis pour faire une mise à jour de masse de données à l'aide de ce framework.


Voici ce que je fais:
//ouverture d'une session hibernate
Session session = HibernateUtil.currentSession();

//Définition de la clef qui va me permettre de charger les données à modifier
//Je ne défini qu'une partie de la clef car je veux récupérer une liste
MonObjectPK monObjectPK = new MonObjectPK();
monObjectPK.setAttributNumero1(value1);
...
monObjectPK.setAttributNumeroN(valueN);

//ouverture d'une transaction
Transaction tx = session.beginTransaction();
//Chargement (normalement récursif) des objects chargés à partir de la clef créée précédemment
MonObject monObject = (MonObject) session.load(MonObject.class,monObjectPK);
//Modification de ces objects
monObject.setAttributX(valueX);
//Update de la base
session.update(monObject);
tx.commit();

Tout ceci me renvoie un message d'erreur me disant que le load ne renvoie aucune ligne...
Si je ne défini aucun attribut de ma clef et que j'utilise une clef vide pour récupérer dans le load les objects, j'ai le même message d'erreur...

Mes questions:
Doit on instancier tous les éléments de la clef pour faire un load?
Si on instancie tous les élements de la clef, seul une ligne de données va être retournée, comment faire pour en retourner plusieurs (en utilisant les transactions hibernate ou d'autre méthode hibernate mais PAS de boucle explicite (sans bidouille en utilisant vraiment le framework))?

Merci d'avance






The SMURF
[mailto:the_little_smurf@yahoo.fr the_little_smurf@yahoo.fr]
Enjoy the life, don't waste your time in front of your computer

1 réponse

Syruis Messages postés 181 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 28 avril 2009
21 avril 2005 à 12:01
Salut,



http://www.hibernate.org/hib_docs/v3/api/

Loader(SessionFactoryImplementor factory)





Sinon après chaque get* s'utilise séparement je vois pas trop ta question...





Syruis :)

http://forum.musique.free.fr

le secret de la vie n'est pas de faire ce que l'on aime mais d'aimer ce que l'on fait ....
0
Rejoignez-nous