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 :

Problème delete Objet [Core]


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2010
    Messages : 48
    Par défaut Problème delete Objet
    SALUT tous le monde.

    En fait je suis entrain de réaliser une application en Spring+jsf+hibernate.
    j'ai fait ma couche model et DAO et je suis en train de faire des tests.
    lorsque j'ai voulu tester une methode qui supprime un objet a ma grande surprise rien ne se passe et j'ai pas d'erreur.

    Voila mon Bean

    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
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
     
    package com.project.model;
     
    // Generated 28 juil. 2012 15:18:00 by Hibernate Tools 3.4.0.CR1
     
    import java.util.ArrayList;
    import java.util.Collection;
     
     
    import javax.persistence.Basic;
    import javax.persistence.CascadeType;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.FetchType;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.JoinColumn;
    import javax.persistence.Lob;
    import javax.persistence.ManyToOne;
    import javax.persistence.OneToMany;
    import javax.persistence.Table;
     
    /**
     * Categorie generated by hbm2java
     */
    @Entity
    @Table(name = "Categorie", schema = "dbo", catalog = "ECommerce")
    public class Categorie implements java.io.Serializable {
     
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
    	private int idCategorie;
    	private Categorie categorie;
    	private String intitule;
    	private String affiche;
    	private String image;
    	private String description;
    	private Collection<Produit> produits = new ArrayList<Produit>();
    	private Collection<Categorie> categories = new ArrayList<Categorie>();
     
    	public Categorie() {
    	}
     
    	public Categorie(int idCategorie, Categorie categorie, String intitule,
    	    String affiche, String description) {
    		this.idCategorie = idCategorie;
    		this.categorie = categorie;
    		this.intitule = intitule;
    		this.affiche = affiche;
    		this.description = description;
    	}
     
    	public Categorie(int idCategorie, Categorie categorie, String intitule,
    			String affiche, String description, Collection<Produit> produits,
    			Collection<Categorie> categories) {
    		this.idCategorie = idCategorie;
    		this.categorie = categorie;
    		this.intitule = intitule;
    		this.affiche = affiche;
    		this.description = description;
    		this.produits = produits;
    		this.categories = categories;
    	}
     
    	@Id
    	@Column(name = "idCategorie", unique = true, nullable = false)
    	@GeneratedValue(strategy=GenerationType.AUTO)
    	public int getIdCategorie() {
    		return this.idCategorie;
    	}
     
    	public void setIdCategorie(int idCategorie) {
    		this.idCategorie = idCategorie;
    	}
     
    	@ManyToOne(fetch = FetchType.LAZY,cascade=CascadeType.PERSIST)
    	@JoinColumn(name = "Categorie_Parent")
    	public Categorie getCategorie() {
    		return this.categorie;
    	}
     
    	public void setCategorie(Categorie categorie) {
    		this.categorie = categorie;
    	}
     
    	@Column(name = "Intitule", nullable = false, length = 30)
    	public String getIntitule() {
    		return this.intitule;
    	}
     
    	public void setIntitule(String intitule) {
    		this.intitule = intitule;
    	}
     
    	@Column(name = "Affiche", nullable = false)
    	public String getAffiche() {
    		return this.affiche;
    	}
     
    	public void setAffiche(String affiche) {
    		this.affiche = affiche;
    	}
        @Lob
    	@Column(name = "Description")
    	public String getDescription() {
    		return this.description;
    	}
     
    	public void setDescription(String description) {
    		this.description = description;
    	}
     
    	@OneToMany(mappedBy = "categorie")
    	public Collection<Produit> getProduits() {
    		return this.produits;
    	}
     
     
    	public void setProduits(Collection<Produit> produits) {
    		this.produits = produits;
    	}
    	@Lob
    	@Column(name = "Image", nullable = false)
    	@Basic(fetch=FetchType.LAZY)
     
    	public String getImage() {
    		return image;
    	}
     
    	public void setImage(String image) {
    		this.image = image;
    	}
     
    	@OneToMany(fetch = FetchType.LAZY, mappedBy = "categorie")
    	public Collection<Categorie> getCategories() {
    		return this.categories;
    	}
     
    	public void setCategories(Collection<Categorie> categories) {
    		this.categories = categories;
    	}
     
    	@Override
    	public String toString() {
    		return "Categorie [idCategorie=" + idCategorie + ", categorie="
    				+ categorie + ", intitule=" + intitule + ", affiche=" + affiche
    				+ ", description=" + description + "]";
    	}
     
     
     
    }
    voila l'implémentation de la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    	public void delete(String intitule) {
    		// TODO Auto-generated method stub
    		Session session=sessionFactory.getCurrentSession();
    		Query q=session.createQuery("from Categorie c where c.intitule =:intitule");
    		q.setString("intitule",intitule);
    		//Categorie c=(Categorie) q.uniqueResult();
    		//System.out.println(c.getIntitule());
    		session.delete((Categorie) q.uniqueResult());
     
    	}
    J'ajoute que dans j'ai implémenter une relation réflexive dans l'entité Categorie de tel sorte que chaque categorie soit liée à plusieurs catégories.
    SVP quelqu'un peut m'aider

  2. #2
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2010
    Messages : 48
    Par défaut
    A la fin du test voila ce qui se passe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Hibernate: select categorie0_.idCategorie as idCatego1_1_, categorie0_.Affiche as Affiche1_, categorie0_.Categorie_Parent as Categorie6_1_, categorie0_.Description as Descript3_1_, categorie0_.Image as Image1_, categorie0_.Intitule as Intitule1_ from ECommerce.dbo.Categorie categorie0_ where categorie0_.Intitule=?

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Tu peux faire un delete en HQL directement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Session session=sessionFactory.getCurrentSession();
    Query q=session.createQuery("delete Categorie c where c.intitule =:intitule");
    q.setString("intitule",intitule);
    q.executeUpdate();
    A+.

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Tant que tu ne fais pas de commit de ta session, les changement que tu apporte ne sont pas persistés, tout simplement.

  5. #5
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2010
    Messages : 48
    Par défaut
    Andry merci Bien , ca marche directement avec HQL.
    Par contre j'aimerais bien connaitre la raison de ce problème,tchize je l'ai deja tester sur une autre entité ,ca marche sans faute sans avoir recours a commit,j'utilise spring+hibernate+jsf tout est spécifié dans les fichiers de configuration , mais la je ne sais pas trop ce qui arrive ,même edit ne marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    public void edit(Categorie categorie) {
    		// TODO Auto-generated method stub
     
    	Session session = sessionFactory.getCurrentSession();
    		Categorie c=(Categorie)session.get(Categorie.class,categorie.getIdCategorie());
    		c.setIntitule(categorie.getIntitule());
    		c.setAffiche(categorie.getAffiche());
    		c.setDescription(categorie.getDescription());
    		c.setImage(categorie.getImage());
    		session.update(c);
    }

  6. #6
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2010
    Messages : 48
    Par défaut
    ouraa le problème est résolu...
    Je n'y ai pas pensé,je devais ajouter session.flush().
    Merci pour vos réponses

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

Discussions similaires

  1. Problème DELETE multi-tables
    Par Gwipi dans le forum Requêtes
    Réponses: 5
    Dernier message: 22/05/2006, 08h48
  2. Problème avec objet fermé
    Par Mvu dans le forum ASP
    Réponses: 4
    Dernier message: 22/09/2005, 10h30
  3. Réponses: 13
    Dernier message: 01/09/2005, 15h09
  4. Problème programmation objet
    Par Contrec dans le forum MFC
    Réponses: 54
    Dernier message: 30/03/2005, 11h30
  5. Problème d'objet attendu
    Par odelayen dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 22/02/2005, 10h27

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