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] erreur requête delete


Sujet :

Hibernate Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 76
    Points : 49
    Points
    49
    Par défaut [HQL] erreur requête delete
    Bonjour,

    Je travaille avec mysql5 et hibernate3.
    Je chercher à supprimer toutes les lignes de ma table CHAT dont l'âge est 10.
    Ma table CHAT a des dépendances dans le MDD, je veux donc utiliser les DAO pour tout supprimer proprement.

    Ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chatDAO.getQuery("delete Chat where age =:age").setInteger("age", 10).executeUpdate();
    J'ai l'erreur suivante :

    Hibernate: delete from chat where AGE=?
    2006-02-16 20:03:47 ERROR [[InitServlet]] "Servlet.service()" pour la servlet InitServlet a généré une exception
    java.lang.NullPointerException
    at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:442)
    at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:93)
    at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:86)
    at org.hibernate.hql.ast.exec.BasicExecutor.execute(BasicExecutor.java:62)


    Les lignes existent en base, je ne vois pas pourquoi une null pointer exception ?

  2. #2
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Bonjour,

    A priori c'est une erreur Java et pas MySQL donc transfert vers le bon forum.


    PS : dans ton extrait de code il n'y a pas de FROM alors que dans l'erreur Hibernate oui.

    PPS : Tu réalises une appli vétérinaire de gestion d'euthanasie de vieux félins :
    Pensez au bouton

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 76
    Points : 49
    Points
    49
    Par défaut
    Ok, en fait il s'agit d'une erreur hibernate, je crois qu'il n'y a pas de forum dédié...
    Effectivement, il n'y a pas de "from", c'est hibernate qui le génère à la volée, ça c'est normal.
    D'après la documentation hibernate, un delete en HQL se fait via :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    String hqlDelete = "delete Customer c where c.name = :oldName";
    // or String hqlDelete = "delete Customer where name = :oldName";
    int deletedEntities = s.createQuery( hqlDelete )
            .setString( "oldName", oldName )
            .executeUpdate();
    Je ne vois pas la différence avec mon code.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 76
    Points : 49
    Points
    49
    Par défaut
    Pardon, ce n'est évidemment pas la bonne instruction, je la recherche et vous l'envoie.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 76
    Points : 49
    Points
    49
    Par défaut
    En fait, j'ai l'impression qu'il n'est pas possible de supprimer plusieurs lignes d'une même table avec un DAO...

Discussions similaires

  1. Erreur requête HQL
    Par Fatemy dans le forum Hibernate
    Réponses: 2
    Dernier message: 26/08/2011, 10h03
  2. Requête HQL : erreur de syntaxe
    Par raf64flo dans le forum Hibernate
    Réponses: 0
    Dernier message: 26/04/2010, 18h47
  3. Requête delete: Erreur ORA-00933
    Par loukili81 dans le forum Oracle
    Réponses: 13
    Dernier message: 09/08/2007, 19h04
  4. [Hibernate 3][HQL] erreur de Delete
    Par CharlSka dans le forum Hibernate
    Réponses: 5
    Dernier message: 20/04/2007, 16h02
  5. [MySQL] Erreurs de syntaxe sur requêtes DELETE
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/03/2006, 15h53

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