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 :

Supprimer List avec HQL Hibernate


Sujet :

Hibernate Java

  1. #1
    Membre du Club Avatar de am.adnane
    Inscrit en
    Février 2004
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 85
    Points : 56
    Points
    56
    Par défaut Supprimer List avec HQL Hibernate
    Salut!
    pour un exemple d'hibernate je veux supprimer une list j'ai fai la requet HQL suivante:

    public void deletListCv(String parameter){
    getHibernateTemplate().find("delete Cv as c where c.domaineIntervention = '"
    + parameter + "'");
    }

    il me donne l'erreur suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    javax.servlet.ServletException: Not supported for DML operations [delete org.tech.model.hibernate.Cv as c where c.domaineIntervention = 'Management']
    	org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:541)
    	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:451)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:264)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1176)
    	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:454)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
     
     
    cause mère
    c quoi la solution et merci!
    Bon journé


    am.adnane

  2. #2
    Membre expérimenté 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
    Points : 1 639
    Points
    1 639
    Par défaut
    Tu faire ca en style DML comme indiqué dans la doc (http://www.hibernate.org/hib_docs/v3...batch-direct):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Session session = sessionFactory.openSession();
    Transaction tx = session.beginTransaction();
    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();
    tx.commit();
    session.close();

  3. #3
    Membre du Club Avatar de am.adnane
    Inscrit en
    Février 2004
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 85
    Points : 56
    Points
    56
    Par défaut
    Alors Maintenant je dois fair comme ça:

    public void deletListCv(String parameter){
    getHibernateTemplate().creatQuery("delete Cv as c where c.domaineIntervention = '"
    + parameter + "'");
    }

  4. #4
    Membre expérimenté 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
    Points : 1 639
    Points
    1 639
    Par défaut
    Citation Envoyé par am.adnane
    Alors Maintenant je dois fair comme ça:

    public void deletListCv(String parameter){
    getHibernateTemplate().creatQuery("delete Cv as c where c.domaineIntervention = '"
    + parameter + "'");
    }
    Comprends pas ...

  5. #5
    Membre du Club Avatar de am.adnane
    Inscrit en
    Février 2004
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 85
    Points : 56
    Points
    56
    Par défaut
    les classe que j'ai cré:

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
    import java.io.Serializable;
    import java.util.List;
     
    import org.hibernate.HibernateException;
    import org.hibernate.Query;
    import org.hibernate.Session;
     
    public class HibernateDaoSupport {
     
    	private Session session;
     
    	public HibernateDaoSupport() {
    		session = HibernateUtil.currentSession();
    	}
     
     
    	public void save(Object object) throws HibernateException {
    		session.beginTransaction();
    		session.save(object);
    		session.getTransaction().commit();
    		//session.close();
    	}
    	public void update(Object object) throws HibernateException {
    		session.beginTransaction();
    		session.update(object);
    		session.getTransaction().commit();
    		//session.close();
    	}
     
    	public Object get(Class arg0,Serializable object) throws HibernateException {
    		session.beginTransaction();
    		Object obj = session.get(arg0, object);
    		session.getTransaction().commit();
    		//session.close();
    		return obj;
    	}
     
    	public HibernateDaoSupport getHibernateTemplate() {
    		return HibernateDaoSupport.this;
    	}
     
     
    	public List find(String query) {
    		session.beginTransaction();
    		List result = createQuery(query).list();
    		session.getTransaction().commit();
    		//session.close();
    		return result;
    	}
     
     
    	public void delete(Object object) {
    		session.beginTransaction();
    		session.delete(object);
    		session.getTransaction().commit();
    		//session.close();
    	}
     
    	public Query createQuery(String query) {
    		return session.createQuery(query);
    	}
     
     
    	public void saveOrUpdate(Object object)throws HibernateException{
    		session.beginTransaction();
    		session.saveOrUpdate(object);
    		session.getTransaction().commit();
    		//session.close();
    	}
     
    }

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
     
    package org.tech.hibernate.utils;
     
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
     
    public class HibernateUtil {
     
        private static Log log = LogFactory.getLog(HibernateUtil.class);
        private static final SessionFactory sessionFactory ;
     
        static {
            try {
                // Create the SessionFactory
                sessionFactory = 
    			new Configuration().configure().buildSessionFactory();
            } catch (Throwable ex) {
                // Make sure you log the exception, as it might be swallowed
                log.error("Initial SessionFactory creation failed." + ex);
                throw new ExceptionInInitializerError(ex);
            }
        }
     
        public static final ThreadLocal<Session> session = new ThreadLocal<Session>();
     
        public static Session currentSession() {
            Session s = (Session) session.get();
            // Open a new Session, if this Thread has none yet
            if (s == null) {
                s = sessionFactory.openSession();
                session.set(s);
            }
            return s;
        }
     
        public static void closeSession() {
            Session s = (Session) session.get();
            if (s != null)
                s.close();
            session.set(null);
        }
    }



  6. #6
    Membre expérimenté 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
    Points : 1 639
    Points
    1 639
    Par défaut
    Et a quel endroit se produit l'erreur ?
    Quelle est la question ?

  7. #7
    Membre du Club Avatar de am.adnane
    Inscrit en
    Février 2004
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 85
    Points : 56
    Points
    56
    Par défaut
    Merci de vos message Mr.willoi


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    getHibernateTemplate().creatQuery("delete Cv as c where c.domaineIntervention = '"
    + parameter + "'");
    j'ai fé comme ca mais ca passe pas.
    je veux savoir comment fair pour supprimer une list avec HQL?



    Merci!

    am.adnane

  8. #8
    Membre expérimenté 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
    Points : 1 639
    Points
    1 639
    Par défaut
    Et bien comme je t'ai dit plus haut avec le style DML.

    Tu dois utiliser session.createQuery
    et je t'ai donné un lien aussi.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 6
    Points : 11
    Points
    11
    Par défaut
    si tu veux utiliser session.createQuery tu doit l'appeler de cette façon


    getHibernateTemplate().getSessionFactory().getCurrentSession().createQuery("delete Cv as c where c.domaineIntervention = '"
    + parameter + "'");


    j'espère que j'ai repondu a ta question !!

Discussions similaires

  1. [HQL hibernate] Utilisation avec les BDs
    Par AmineDev9 dans le forum Hibernate
    Réponses: 0
    Dernier message: 28/05/2009, 16h40
  2. supprimer un élément d'une liste avec erase
    Par jane40 dans le forum Débuter
    Réponses: 12
    Dernier message: 24/01/2009, 13h26
  3. supprimer valeur d'une liste avec la touche "suppr"
    Par supertoms dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/06/2008, 16h28
  4. Probleme de recuperation d'une liste avec Hibernate et Spring
    Par fabiolerusse dans le forum Hibernate
    Réponses: 4
    Dernier message: 22/05/2008, 16h04
  5. [MFC] creer une liste avec des check????
    Par ginounet dans le forum MFC
    Réponses: 4
    Dernier message: 16/06/2004, 12h47

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