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

Spring Java Discussion :

Insertion dans la base de clé étrangère


Sujet :

Spring Java

  1. #1
    Membre à l'essai Avatar de REDBAR
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 21
    Points : 19
    Points
    19
    Par défaut Insertion dans la base de clé étrangère
    Bonsoir
    Je débute avec springboot et thymeleaf avec HTML
    J'ai créer mes services, leur implémentation et autres (mapping)
    Mon soucis se situe au niveau de la gestion de la relation entre l'entity "ARTICLE" et "CATEGORIE_ARTICLE". Sachant que le Id de "CATEGORIE_ARTICLE" migre dans "ARTICLE".
    si renseigner les autres attributs de "ARTICLE" (libelArticle, quantité, prix,..., id_Categorie_article) je n'arrive pas à renseigner l'attribut id_Categorie_article qui est la clé étrangère dans l'entity "ARTICLE"

    voici le code de ma vue

    Code html : 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
    <form class="form-horizontal well" method="post"  th:action="@{/}" th:object="${article}">
                    <div class="form-group">
                        <label class="control-label col-sm-2" >Reférence :</label>
                        <div class="col-md-6">                         
                            <input type="text" class="form-control input-sm" th:field="*{reference}"/>
                        </div>
                        <div class="col-md-4">
                            <span th:if="${#fields.hasErrors('reference')}" th:errors="*{reference}" style="color: red">Name Error </span>
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="control-label col-sm-2" >Désignation :</label>
                        <div class="col-md-6">                         
                            <input type="text" class="form-control input-sm" th:field="*{libelleArticle}"/>
                        </div>
                        <div class="col-md-4">
                            <span th:if="${#fields.hasErrors('libelleArticle')}" th:errors="*{libelleArticle}" style="color: red">Name Error </span>
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="control-label col-sm-2" >Prix unitaire :</label>
                        <div class="col-md-6">                         
                            <input type="number" class="form-control input-sm" th:field="*{prixUnitaire}"/>
                        </div>
                        <div class="col-md-4">
                            <span th:if="${#fields.hasErrors('prixUnitaire')}" th:errors="*{prixUnitaire}" style="color: red">Name Error </span>
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="control-label col-sm-2" >Quantité :</label>
                        <div class="col-md-6">                         
                            <input type="number" class="form-control input-sm" th:field="*{quantiteEnStock}" />
                        </div>
                        <div class="col-md-4">
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="control-label col-sm-2" >Catégorie :</label>
                        <div class="col-md-6">                         
                            <input type="date" class="form-control input-sm" th:field="  " />
                        </div>
                        <div class="col-md-4">
                            
                        </div>
                    </div>
                    ...
                 </form>
    la ligne sur laquelle je bute c'est celle que j'ai mise en gras. comment fait pour que mon input à partir du libellé de Catégorie_article puisse savoir que c'est le Id que j'ai besoin pour le mettre dans la table ARTICLE dans ma base de données.

    voici mon code de ARTICLE

    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
    @Entity
    @SuppressWarnings("PersistenceUnitPresent")
    public class Article implements Serializable {
     
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private int id;
        @NotEmpty
        @Size(min = 2)
        @Column(name = "libel_article")
        private String libelleArticle;
        @NotNull
        @Column (name ="prix_unitaire")
        private double prixUnitaire;    
        @Column(name = "qte_stock")
        private int quantiteEnStock;
        @NotEmpty
        @Column(name ="date_creation")
        @Temporal(TemporalType.DATE)
        private Date dateCreation;
        @Size(min = 2)
        @NotEmpty
        @Column(name = "reference", length = 80)
        private String reference;
     
     
        @ManyToOne (fetch = FetchType.LAZY)
        @JoinColumn(name = "id_categorie")
        private CategorieArticle categorieArticle;
     
            ....
    }
    code de CATEGORIE_ARTICLE
    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
     
    @Entity
    @SuppressWarnings("PersistenceUnitPresent")
    @Table ( name = "categorie_article")
    public class CategorieArticle implements Serializable{
     
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private int id;
        @NotEmpty(message = "ce champ est obligatoire")
        @Column ( name = "lib_categorie", length = 80)
        private String libelleCategorie;
     
        @OneToMany (mappedBy = "categorieArticle", cascade = CascadeType.ALL)
        private List<Article> article ;
        ...
    }

    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
     
    @Controller
    public class ArticleController {
     
        ArticleService service;
        CategorieArticleService categorieService;
     
     
        @Autowired
        public ArticleController(ArticleService service, CategorieArticleService categorieService) {
            this.service = service;
            this.categorieService = categorieService;
        }
     
        @RequestMapping(value = "/articles", method = RequestMethod.POST)
        public String article(@ModelAttribute Article article, Model model) {
            Article art = service.creer(article);
            return "articles";
         ...
          }}
    j'ai enlever volontairement certainement partie code pour ne garder que l'essentiel.
    Merci

  2. #2
    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
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour.
    comment fait pour que mon input à partir du libellé de Catégorie_article puisse savoir que c'est le Id que j'ai besoin pour le mettre dans la table ARTICLE dans ma base de données.
    N'utilise pas un input mais un select avec comme valeur l'id et option le libellé.

    A+.

  3. #3
    Membre à l'essai Avatar de REDBAR
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    Bonsoir
    Citation Envoyé par andry.aime Voir le message

    N'utilise pas un input mais un select avec comme valeur l'id et option le libellé.

    A+.
    J'ai utiliser un select a la place comme tu a conseillé et essayer de mettre l'id dans valeur et le libellé dans option.
    Il faut dire que je n'y arrive pas.

    peux-tu me indique une illustration ou un exemple
    merci

  4. #4
    Membre à l'essai Avatar de REDBAR
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    J'ai finalement trouver la solution.
    J'ai utiliser une classe qui a implémenter l'interface formatter. puis avec les méthodes print et parse de cette classe.

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par REDBAR Voir le message
    J'ai finalement trouver la solution.
    J'ai utiliser une classe qui a implémenter l'interface formatter. puis avec les méthodes print et parse de cette classe.
    Bonjour Redbar,
    vous avez un exemple svp de l'implementation de l'interface formatter.
    merci d'avance

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

Discussions similaires

  1. Requête d'insertion dans une base ACCESS
    Par kurul1 dans le forum C++Builder
    Réponses: 5
    Dernier message: 02/11/2006, 17h41
  2. [C#] Insertion dans une base Access .mdb
    Par borgfabr dans le forum Windows Forms
    Réponses: 3
    Dernier message: 03/03/2005, 15h30
  3. Réponses: 10
    Dernier message: 24/02/2005, 14h57
  4. Problème d'insertion dans la base.
    Par roots_man dans le forum ASP
    Réponses: 2
    Dernier message: 14/09/2004, 12h56
  5. Probleme d'insertion dans la base de données
    Par PrinceMaster77 dans le forum ASP
    Réponses: 5
    Dernier message: 11/06/2004, 16h21

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