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 foreign key avec hibernate


Sujet :

Hibernate Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Points : 8
    Points
    8
    Par défaut Problème foreign key avec hibernate
    Problème foreign key avec hibernate :Formulaire struts:
    bonjour tt le monde :j'ai besoin de votre aide svp

    Voici mon problème j'ai un formulaire qui se compose de champs de ma table "ressource" et de ma table "conge" tel qe la table ressource a une clé etrangère qui reprèsente la clé primaire de la table "conge"

    Problème : l'insertion ne se fait pas pourtant je crois que ce que j'ai ds mon Action est logique.

    voici ma page jsp_________________________
    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
     
    <h:form action="/affectconge" style="text-align:center">
     
    <p>&nbsp;</p>
     
    <table width="361" align="center">
     
    <tr><td width="56"><p class="Style23">Lastname </p></td>
     
    <td> <h:text property="nomRessource" /></td></tr>
     
    <tr> <td><p class="Style23">first name</p></td>
     
    <td> <h:text property="prenomRessource" /></td></tr>
     
    <tr> <td> <p class="Style23">Country</p></td>
     
    <td> <h:text property="paysRessource" /></td></tr>
     
    <tr><td><p class="Style23">Phone</p></td>
     
    <td> <h:text property="numTelephone" /></td></tr>
     
    <tr><td><p class="Style23">Days off Type</p></td>
     
    <td> <h:text property="typeConge" /></td></tr>
     
    <td><span class="Style23 Style2 Style1 Style4">Date starting</span></td>
     
    <td width="144">
     
    <input type="text" name="ddconge" onFocus="view_microcal(true,'ddconge','microcal',-1,0);" onBlur="view_microcal(false,'ddconge','microcal',-1,0);" onKeyUp="this.style.color=testTypeDate(this.value)?'black':'red" /></td>
     
    <div id="microcal" name="microcal" style="visibility:hidden;position:absolute;border:1px gray dashed;background:#ffffff; margin-left: 70px;"> </div>
     
    <tr> <td><span class="Style23 Style2 Style1 Style4">Date ending</span></td>
     
    <td>
     
    <input type="text" name="dfconge" onFocus="view_microcal(true,'dfconge','microcal',-1,0);" onBlur="view_microcal(false,'dfconge','microcal',-1,0);" onKeyUp="this.style.color=testTypeDate(this.value)?'black':'red" /></td>
     
    <div id="microcal" name="microcal" style="visibility:hidden;position:absolute;border:1px gray dashed;background:#ffffff; margin-left: 70px;"> </div>
     
    </tr>
     
    <tr>
     
    <td><span class="Style23 Style2">Dury</span></td>
     
    <td><input type="text" name="dureeconge" value="0" readonly onFocus="calculer()" />
     
    <span class="Style2"> days</span></td>
     
    </tr>
     
    </table>
     
    <table width="110" align="center">
     
    <tr>
     
    <td width="154"><input name="Submit" type="submit" class="top" value="Add" style="text-align:center"/>
     
    <input name="cancel" type="reset" class="top" value="Reset"/></td></tr>
     
    </table>
    </h:form>
    voici mon action _________________________
    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
     
    package com.struts.controleur;
    import com.struts.data.AddmissionForm;
    import com.struts.data.AffectcongeForm;
    import com.basenew.*;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import com.util.HibernateUtil;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.*;
    import org.hibernate.*;
    public final class AffectcongeAction extends Action
    {
        public AffectcongeAction()
        {
        }
        public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res)
            throws Exception
        {
            String resultat = null;
     
            String prenomRessource = ((AffectcongeForm)form).getPrenomRessource();
            String nomRessource = ((AffectcongeForm)form).getNomRessource();
            String paysRessource = ((AffectcongeForm)form).getPaysRessource();
            String numTelephone = ((AffectcongeForm)form).getNumTelephone();
            String typeConge = ((AffectcongeForm)form).getTypeConge();
            String dateValue1 = ((AffectcongeForm)form).getDdconge();
            String dateValue2= ((AffectcongeForm)form).getDfconge();
            Double dureeconge =((AffectcongeForm)form).getDureeconge();
     
     
            try
            {
                Session session = HibernateUtil.getSessionFactory().getCurrentSession();
                session.beginTransaction();
                Ressource r1 = new Ressource();
                Conge c1=new Conge();
               // Profil p1=new Profil();
              //r1.setIdSeuil(Integer.valueOf(idSeuil));
                //r1.setIdProfil(Integer.valueOf(idProfil));
                r1.setNomRessource(nomRessource);
                r1.setPrenomRessource(prenomRessource);
                r1.setPaysRessource(paysRessource);
                r1.setNumTelephone(numTelephone);
                SimpleDateFormat dd = new SimpleDateFormat("dd-MM-yyyy");
                SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy");
                java.util.Date  ddconge = dd.parse(dateValue1);
                java.util.Date  dfconge= df.parse(dateValue2);
                r1.setDdconge(ddconge);
                r1.setDfconge(dfconge);
                r1.setDureeconge(dureeconge);
     
                c1.setTypeConge(typeConge);
                c1.setIdConge(0);
                System.out.println("je conserve le type conge ds conge");
     
     
                session.save(c1);
                System.out.println("après save c1 le type conge ds conge");
                //session.save(p1);
     
                r1.setConge(c1);
                System.out.println("c1 ds ressource");
     
     
                session.save(r1);
                //r1.setIdRessource(0);
                System.out.println("r1 saved");
     
                session.getTransaction().commit();
     
                HibernateUtil.getSessionFactory().close();
     
                resultat = "succes";
     
            }
            catch(Exception ex)
            {
                HibernateUtil.getSessionFactory().close();
                resultat = "echec";
            }
            return mapping.findForward(resultat);
        }
    }
    voici 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
     
    package com.struts.data;
     
    import java.util.Date;
    import javax.servlet.http.HttpServletRequest;
    import org.apache.struts.action.*;
    import com.basenew.Conge;
     
    public class AffectcongeForm extends ActionForm
    {
     private static final long serialVersionUID = 1L;
    private int idRessource;
    private int idConge;
    private String nomRessource;
    private String prenomRessource;
    private String numTelephone;
    private String paysRessource;
    private String ddconge;
    private String dfconge;
    private Double dureeconge;
    private Conge conge;
    private String typeConge;
       public AffectcongeForm()
    {
    }
    public ActionErrors validate(ActionMapping mapping, HttpServletRequest request)
    {
        ActionErrors errors = new ActionErrors();
        return errors;
    }
    public void reset(ActionMapping mapping, HttpServletRequest request)
    {
         idRessource = 0;
        idConge=0;
        nomRessource = null;
        prenomRessource = null;
        dureeconge=null;
        dfconge=null;
        ddconge=null;
        paysRessource=null;
        numTelephone=null;
        conge=null;
     
    }
    public int getIdRessource() {
     return this.idRessource;
    }
    public void setIdRessource(int idRessource) {
     this.idRessource = idRessource;
    }
    public Conge getConge() {
     return this.conge;
    }
    public void setConge(Conge conge) {
     this.conge = conge;
    }
    public String getNomRessource() {
     return this.nomRessource;
    }
    public void setNomRessource(String nomRessource) {
     this.nomRessource = nomRessource;
    }
    public String getPrenomRessource() {
     return this.prenomRessource;
    }
    public void setPrenomRessource(String prenomRessource) {
     this.prenomRessource = prenomRessource;
    }
    public String getNumTelephone() {
     return this.numTelephone;
    }
    public void setNumTelephone(String numTelephone) {
     this.numTelephone = numTelephone;
    }
    public String getPaysRessource() {
     return this.paysRessource;
    }
    public void setPaysRessource(String paysRessource) {
     this.paysRessource = paysRessource;
    }
    public String getDdconge() {
     return this.ddconge;
    }
    public void setDdconge(String ddconge) {
     this.ddconge = ddconge;
    }
    public String getDfconge() {
     return this.dfconge;
    }
    public void setDfconge(String dfconge) {
     this.dfconge = dfconge;
    }
    public Double getDureeconge() {
     return this.dureeconge;
    }
    public void setDureeconge(Double dureeconge) {
     this.dureeconge = dureeconge;
    }
    public String getTypeConge() {
     return this.typeConge;
    }
    public void setTypeConge(String typeConge) {
     this.typeConge = typeConge;
    }
    public int getIdConge() {
     return this.conge.getIdConge();
    }
    public void setIdConge(int idConge) {
     this.conge.setIdConge(idConge);
    }
    }
    Merci pour votre aide

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 100
    Points : 90
    Points
    90
    Par défaut
    Bonjour
    Quel est le message d'erreur que tu obtiens ?
    As tu essayé de debugger pour savoir quelle ligne provoque l'erreur ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    [QUOTE=plsavary;3602421]Bonjour
    dans la console j'obtiens rien comme erreur dans la console de tomcat,sauf que tte les opérations de l'action passe bien ,sauf pour celle là "session.save(r1)" càd q'il n'arrive pa à enregistrer l'objet tt entier;
    [QUOTE]

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    949
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 949
    Points : 1 856
    Points
    1 856
    Par défaut
    N'y aurait-il pas une violation de contrainte d'unicité sur une clé primaire?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 100
    Points : 90
    Points
    90
    Par défaut
    Dans ton catch, essaies de mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ex.printStackTrace();
    Et regardes si il affiche quelque chose dans la console.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 383
    Points : 468
    Points
    468
    Par défaut
    oui, comme dit BugFactory, si IdConge est la primary key de Conge :
    - pourquoi ne pas l'appeler id (c'est la norme)
    - pourquoi setter la valeur toi même (utilise un generateur d'hibernate)

Discussions similaires

  1. [Mapping] Erreur d'ajout d'une ligne avec un Foreign key(Struts2, Hibernate)
    Par lahbabi dans le forum Hibernate
    Réponses: 0
    Dernier message: 11/08/2013, 06h45
  2. Problème pour setter une Foreign Key avec TopLink(ValueHolderInterface)
    Par Kcintim dans le forum Persistance des données
    Réponses: 1
    Dernier message: 19/06/2011, 11h40
  3. Problème CONSTRAINT FOREIGN KEY avec NO ACTION
    Par kaouane dans le forum SQL
    Réponses: 12
    Dernier message: 25/04/2011, 22h05
  4. Foreign Key avec MySQL / phpMyAdmin ?
    Par Tchupacabra dans le forum Outils
    Réponses: 4
    Dernier message: 13/12/2006, 15h59
  5. Problème de connection avec Hibernate Synchronizer
    Par ouzzine dans le forum Hibernate
    Réponses: 8
    Dernier message: 30/11/2006, 13h51

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