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] Problème de désérialisation


Sujet :

Hibernate Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 2
    Points : 4
    Points
    4
    Par défaut [Hibernate] Problème de désérialisation
    Bonjour à tous,

    Débutant en hibernate, je me bats depuis quelques jours pour l'appliquer à mon projet, mais je n'avance plus depuis ce matin.

    Lors de mon chargement d'une demande, l'objet ne se désérialise pas entièrement : le numéro est correct, mais ma date et mon objet Personne sont vides.

    J'ai beaucoup de mal à comprendre que mon objet Personne ne se charge pas, alors qu'il se charge très bien lorsque je l'appelle seul.

    Voici les morceaux de code correspondant :

    Personne.java
    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
    package bean;
     
    import java.io.Serializable;
     
    import javax.persistence.Entity;
    import javax.persistence.Id;
     
    @Entity
    public class Personne implements Serializable{
     
    	private static final long serialVersionUID = 1L;
     
    	// Valeurs
    	@Id
    	private String identifiant;
    	private String nom;
    	private String prenom;
    	private String role;
     
     
    	// Proprietés
    	public String getIdentifiant() {
    		return identifiant;
    	}
     
     
    	public void setIdentifiant(String identifiant) {
    		this.identifiant = identifiant;
    	}
     
     
    	public String getNom() {
    		return nom;
    	}
     
     
    	public void setNom(String nom) {
    		this.nom = nom;
    	}
     
     
    	public String getPrenom() {
    		return prenom;
    	}
     
     
    	public void setPrenom(String prenom) {
    		this.prenom = prenom;
    	}
     
     
    	public String getRole() {
    		return role;
    	}
     
     
    	public void setRole(String role) {
    		this.role = role;
    	}
     
     
    	// Constructeurs
    	public Personne(String identifiant, String nom, String prenom,
    			String role) {
    		super();
    		this.identifiant = identifiant;
    		this.nom = nom;
    		this.prenom = prenom;
    		this.role = role;
    	}
     
     
    	public Personne() {
    		super();
    	}
     
     
    }
    Personne.hbm.xml
    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
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC
         "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
         "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
     
    <hibernate-mapping>
     
    	<class name="bean.Personne" table="Personnes">
     
    		<id name="identifiant" column="Identifiant"></id>
     
    		<property name="nom" type="string" column="Nom"/>
    		<property name="prenom" type="string" column="Prenom"/>
    		<property name="role" type="string" column="Role"/>
     
    	</class>
     
    </hibernate-mapping>
    Demande.java
    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
    package bean;
     
    import java.io.Serializable;
    import java.util.Date;
    import java.util.Set;
     
    import javax.persistence.Entity;
    import javax.persistence.Id;
     
    @Entity
    public class Demande implements Serializable{
     
    	private static final long serialVersionUID = 1L;
     
    	// valeurs
    	@Id
    	private String numero;
    	private Personne demandeur;
    	private Date dateDemande;
     
    	// Proprietés
    	public String getNumero() {
    		return numero;
    	}
     
     
    	public void setNumero(String numero) {
    		this.numero = numero;
    	}
     
     
    	public Personne getDemandeur() {
    		return demandeur;
    	}
     
     
    	public void setDemandeur(Personne demandeur) {
    		this.demandeur = demandeur;
    	}
     
    	public Date getDateDemande() {
    		return dateDemande;
    	}
     
     
    	public void setDateDemande(Date dateDemande) {
    		this.dateDemande = dateDemande;
    	}
     
     
     
    	// Constructeurs
    	public Demande(String numero, Personne demandeur, Date dateDemande) {
    		this.numero = numero;
    		this.demandeur = demandeur;
    		this.dateDemande = dateDemande;
    	}
     
     
    	public Demande() {
     
    	}
     
     
     
    }
    Demande.hbm.xml
    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
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC
         "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
         "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
     
    <hibernate-mapping>
     
    	<class name="bean.Demande" table="Demandes">
     
    		<id name="numero" column="Numero" type="string"></id>
     
    		<property name="dateDemande" type="date" column="DateDemande"/>
    		<property name="demandeur" type="bean.Personne" column="Demandeur"/>
     
    	</class>
     
    </hibernate-mapping>
    Ma servlet RechercherDemande.java
    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
    package servlet;
     
    import java.io.IOException;
     
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import org.hibernate.Session;
    import org.hibernate.Transaction;
     
    import util.hibernateUtil;
    import bean.Demande;
    import bean.Personne;
     
     
    /**
     * Servlet implementation class RechercherDemande
     */
    public class RechercherDemande extends HttpServlet {
    	private static final long serialVersionUID = 1L;
     
     
    	/**
             * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
             */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     
    		RequestDispatcher dispatcher;
    		Demande essai=null;
    		Personne utilisateurConnecte = (Personne)request.getSession().getAttribute("utilisateurConnecte");
     
    		// Récupération des informations saisies dans le formulaire
    		String numero = request.getParameter("numero");
     
    		// Controle des informations :
    		// si tous les champs ne sont pas renseignés, revenir sur la page du formulaire
    		if ((numero == null) || (numero.length() == 0)){
     
    			String message = "Le champ numéro de demande est obligatoire";
    			request.setAttribute("messageErreur", message);
    			dispatcher = request.getRequestDispatcher("/"+utilisateurConnecte.getRole()+"/accueil.jsp");
    			dispatcher.forward(request, response);
    			return;
    		}
     
    		try {
    			Session hibSession = hibernateUtil.getSession();
    			Transaction t = hibSession.beginTransaction();
    			essai = (Demande) hibSession.load(Demande.class, numero); 
    			t.commit();
     
    		} catch (Exception e) {
    			e.printStackTrace();
    		}	
     
    		// Si l'essai a été trouvé...
    		if (essai.getNumero() != null) {
    			request.setAttribute("essaiCherche", essai);
    			dispatcher = request.getRequestDispatcher("/commun/detailDemande.jsp");
    			dispatcher.forward(request, response);
    			return;
    		}
    		// ...sinon
    		else {
    			// Retourner à l'écran d'identification avec un message d'erreur fonctionnel			
    			String message = "Demande non trouvée";
    			request.setAttribute("messageErreur", message);
    			dispatcher = request.getRequestDispatcher("/"+utilisateurConnecte.getRole()+"/accueil.jsp");
    			dispatcher.forward(request, response);
    			}
    	}
     
    }
    Je remercie d'avance les personnes qui pourront me venir en aide

  2. #2
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    salut,
    peux-tu changer le type,
    au lieu de :
    change plutot en

    et le mapping de la table comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      <one-to-one name="demandeur" class="bean.Personne"
    			cascade="save-update"></one-to-one>
    si c´est une relation one_to_one.

    Eric

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 2
    Points : 4
    Points
    4
    Par défaut
    Bonjour jeffray03,

    Merci beaucoup pour ton aide.

    Le type="timestamp" marche bien.

    Par contre, Le mapping de la relation one-to-one ne fonctionne pas. Tant pis, au final, je triche en incluant l'identifiant de mon objet Personne dans mon objet Demande plutôt que l'objet entier.

    Désolé de ne pas avoir répondu plus tôt, je cherchais une solution de mon côté sur ce problème et d'autres.

    Merci encore

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

Discussions similaires

  1. [WebFlow] Problème de désérialisation de la session hibernate avec SWF
    Par QuentP dans le forum Spring Web
    Réponses: 0
    Dernier message: 23/09/2014, 12h15
  2. [STRUTS/HIBERNATE] Problème d'exécution de requête
    Par mc_chicken dans le forum Hibernate
    Réponses: 5
    Dernier message: 21/10/2005, 09h27
  3. [Hibernate] problème d'insertion dans la base de données
    Par Willy7901 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 18/08/2005, 13h19
  4. [hibernate]Problème de récupération d'objet...
    Par roxx62 dans le forum Hibernate
    Réponses: 1
    Dernier message: 07/07/2005, 11h36
  5. [plugin hibernate] problème d'installation
    Par slymira dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 09/06/2005, 13h06

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