IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hibernate Java Discussion :

[HQL] Faire un update d'une table


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de bouchette63
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 257
    Par défaut [HQL] Faire un update d'une table
    Bonjour,

    Je suis débutant avec Hibernate, je travail avec la version 2.

    J'ai un souci au niveau de l'exécution de l'une de mes requêtes en HQL.
    Lorsque je souhaite obtenir la liste des occurences de ma table, je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    lsQuery = "from typeDocument in class DbTypeDocument";
    List queryResult = lSession.createQuery(lsQuery).list();
    Et ça marche sans problème.

    Mais lorsque je veux faire une mise à jour, avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    lsQuery = "update typeDocument in class DbTypeDocument set typeDocument.nCleInfosImaging = null where typeDocument.nCleInfosImaging = :cle";
    Query query = lSession.createQuery(lsQuery).setString("cle", pnCleInfosImaging);
    Il ne se passe rien ?
    J'ai vu que dans Hibernate 3, il faut utiliser executeUpdate(), mais cette fonction n'est pas disponible dans Hibernate 2.

    Quelq'un à une idée svp pour exécuter ma requête ?

    Merci pour votre aide

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Pour les mises à jour, je ne passe pas par HQL.
    Je fais seulement des "set" sur les valeurs que je veux modifier.

  3. #3
    Membre éclairé Avatar de bouchette63
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 257
    Par défaut
    Merci,

    Mais je ne peux pas passer par des sets dans ce cas là. Il faut que je passe par une requête. Le problème c'est que je n'arrive pas à exécuter ma requête HQL ?

    Si quelqu'un à une idée ?
    merci

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Réponse un peu bête, mais as-tu initialisé ton paramètre de requête:
    :cle

  5. #5
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    L'update et le delete en hql ont été rajouté relativement tard au niveau HQL, dans la version 3 si je ne m'abuse

    [edit] en tout cas dans la ref de la v2 que j'ai sous les yeux ils n'en parlent aucunement alors que la même page en v3 en parle

  6. #6
    Membre éclairé Avatar de bouchette63
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 257
    Par défaut
    Merci à vous deux pour vos réponses,
    Citation Envoyé par fr1man
    Réponse un peu bête, mais as-tu initialisé ton paramètre de requête:
    oui, j'ai bien initialisé ma valeur :cle.

    Citation Envoyé par sinok
    L'update et le delete en hql ont été rajouté relativement tard au niveau HQL, dans la version 3 si je ne m'abuse

    [edit] en tout cas dans la ref de la v2 que j'ai sous les yeux ils n'en parlent aucunement alors que la même page en v3 en parle
    J'ai pas pu me procurer la documentation officielle sur les anciennes versions d'Hibernate. Mais tu dois avoir raison, la mise à jour en HQL ne doit être disponible que depuis la version 3. Vu que l'option executeUpdate() n'existe pas dans la 2.

    Cela va me pousser plus vite à migrer vers Hibernate 3

    Merci encore

    A+

  7. #7
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Pour la doc de la v2 est fournie avec le zip d'hibernate que tu télécharges sur sourceforge

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/10/2010, 11h10
  2. Update d'une table a partir d'une autre table
    Par Yannis06 dans le forum Oracle
    Réponses: 6
    Dernier message: 11/08/2005, 11h32
  3. Faire un Lock sur une table pendant l'exec d'un DTS
    Par Pete dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 14/03/2005, 14h17
  4. Update d'une table
    Par EssaiEncore dans le forum Langage SQL
    Réponses: 2
    Dernier message: 18/02/2005, 10h00
  5. UPDATE d'une table avec test d'un champ d'une autre table
    Par delphim dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/05/2004, 12h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo