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 :

[Hibernate 3][HQL] erreur de Delete


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2007
    Messages : 100
    Par défaut [Hibernate 3][HQL] erreur de Delete
    j'essaie de faire un delete en HQL mais hibernate ne veut pas me laisser passer ma requete, il me mets toujours des erreurs !

    j'ai essayer (avec ou sans le from)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    delete Scc scc where scc.id.assNumeroCir = :AssNumeroCir
    delete Scc as scc where scc.id.assNumeroCir = :AssNumeroCir
    => unexepected token 'scc' ou 'as'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    delete Scc where id.assNumeroCir = :AssNumeroCir
    => could not resolve property assNumeroCir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    delete Scc where assNumeroCir = :AssNumeroCir
    => nom de colone invalide 'assNumeroCir'

    Donc la je seche un peu, surtout que les deux premiers proviennent quasi de la doc !
    Est-ce que le fait qu'il n'y ait rien à supprimer pourrait être en cause ?
    Sinon je sais plus !?

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2007
    Messages : 100
    Par défaut
    Bon il faut qu'on m'explique pourquoi les attributs des objets métier ne marche pas dans les requete hql de delete !?

    J'ai finalement réussi à faire passer ma requete, mais c'est comme si je l'avais écrite en SQL, c'est à dire avec les noms de champ de la base !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    delete from Scc where ass_numero_cir = :AssNumeroCir
    Sonc cette requete passe (donc avec le nom du champ de a base), mais dès que je veux mettre un alias à ma table, il me jette (unexpected token) !?

    Il faut qu'on m'explique car dans la doc, l'exemple de delete (§ 13.4) utilise bien un alias !?

  3. #3
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    As tu correctement defini ta classe Scc?
    Et ton mapping?

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2007
    Messages : 100
    Par défaut
    J'ai (re)vérifier, le mapping, j'ai bien ma clé composée dans un objet SccId. SccId comprend bien les champs voulus avec les getters et setters.
    l'objet Scc a bien les getter et setter de l'Id.

    De plus, ce n'est pas une erreur isolée, j'ai une quinzaine de requete similaire sur des tables différentes qui renvoient la meme erreur. Et d'autres requetes HQL (de selection par contre) sont faites sur ces mêmes tables en utilisant des alias sans problème !

    Donc je ne vois pas d'où pourrait venir le problème ...

  5. #5
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    Fais voir le code de ton appel a la requete avec setString("tavaleur",tonchamp) etc ...

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2007
    Messages : 100
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    	public int supprimerListe(Long pAssNumeroCir) {
    		int nbLignesSuppr = 0;
    		String hqlSupprimerListe = new String(
    			new StringBuffer("delete ")
    			.append(B.REF)
    			.append(" b where b.")
    			.append(B.PROP_ID)
    			.append(".")
    			.append(Ass.PROP_ASS_NUMERO_CIR)
    			.append(" = :assId"));
    		Query querySupprimerListe = this.getSession().createQuery(hqlSupprimerListe);
    		nbLignesSuppr = querySupprimerListe
    			.setLong("assId", pAssNumeroCir)
    			.executeUpdate();
     
    		return nbLignesSuppr;
    	}

Discussions similaires

  1. Hibernate HQL - Erreur : DOT node with no left-hand-side
    Par fagma dans le forum Frameworks Web
    Réponses: 5
    Dernier message: 28/04/2011, 16h07
  2. HIBERNATE et l'Erreur : ExceptionInInitializerError
    Par kamaldev dans le forum Hibernate
    Réponses: 1
    Dernier message: 08/09/2006, 13h56
  3. [Hibernate 3.0] Erreur JDBC lors de transaction
    Par julienOriano dans le forum Hibernate
    Réponses: 2
    Dernier message: 06/07/2006, 12h23
  4. [HQL] erreur requête delete
    Par PamelaGeek dans le forum Hibernate
    Réponses: 4
    Dernier message: 17/02/2006, 13h27
  5. Erreur avec DELETE !
    Par James64 dans le forum Langage SQL
    Réponses: 18
    Dernier message: 25/10/2005, 10h49

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