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 Web Java Discussion :

Spring 5 : constructor undefined


Sujet :

Spring Web Java

  1. #1
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut Spring 5 : constructor undefined
    salut les amis,

    pour faire simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      import fr.acme.model.Utilisateur;
    
      public static void main(String[] args) throws SQLException {
    
        Utilisateur u1 = new Utilisateur(1, "prenom_a", "nom_a");      // The constructor Utilisateur(int, String, String) is undefined
        ...
    et le model :
    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
     
    package fr.acme.model;
     
    import lombok.AllArgsConstructor;
    import lombok.Getter;
    import lombok.NoArgsConstructor;
    import lombok.RequiredArgsConstructor;
    import lombok.Setter;
    import lombok.ToString;
     
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
     
     
    @Entity
    @Getter
    @Setter
    @ToString
    @NoArgsConstructor
    @AllArgsConstructor
    public class Utilisateur {
     
      @Id
      @GeneratedValue(strategy = GenerationType.AUTO)
      private long id;
     
      private String prenom;
     
      private String nom;
    }



    pourquoi j'ai cette erreur : The constructor Utilisateur(int, String, String) is undefined

    alors que j'ai bien mis : @AllArgsConstructor

  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
    Par défaut
    Bonjour,

    1- Pour l'erreur, tu dois activer lombok sur ton IDE / Projet.
    2-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      @Id
      @GeneratedValue(strategy = GenerationType.AUTO)
      private long id;
    Tu ne devrais pas mettre l'id dans le constructeur dans ce cas.
    3- Fait attention avec les utilisations de toString via des librairies. Si tu as des relations one/many-to-one/many, tu risques d'avoir des boucles récursives ou des requêtes inutiles à la base.

    A+.

  3. #3
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    1.
    lombok est une dependance maven.

    c'est sensé le prendre en compte non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    		<dependency>
    			<groupId>org.projectlombok</groupId>
    			<artifactId>lombok</artifactId>
    			<version>1.16.4</version>
    			<scope>provided</scope>
    		</dependency>
    et puis quand j'execute le code il me met une erreur à cause du constructeur manquant. ce n'est pas un simple problème d'IDE ! (sauf erreur...)

    2.
    le point 2. et 3. je ne comprends pas ce que je dois faire ?

    ok je vire l'id :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    import fr.acme.model.Utilisateur;
     
      public static void main(String[] args) throws SQLException {
     
        Utilisateur u1 = new Utilisateur("prenom_a", "nom_a");      // The constructor Utilisateur(int, String, String) is undefined
        ...


    et pour le model ? que dois je faire exactement ?
    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
     
    package fr.acme.model;
     
    import lombok.AllArgsConstructor;
    import lombok.Getter;
    import lombok.NoArgsConstructor;
    import lombok.RequiredArgsConstructor;
    import lombok.Setter;
    import lombok.ToString;
     
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
     
     
    @Entity
    @Getter
    @Setter
    @ToString
    @NoArgsConstructor
    @AllArgsConstructor
    public class Utilisateur {
     
      @Id
      @GeneratedValue(strategy = GenerationType.AUTO)
      private long id;
     
      private String prenom;
     
      private String nom;
    }

  4. #4
    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,

    1.
    lombok est une dependance maven.

    c'est sensé le prendre en compte non ?
    Non, pas directement, tu peux faire un maven build, tes classes seront bien compilées et le jar peut être exécuté, par contre ton IDE t'indiquera toujours ces erreurs.

    J'utilise eclipse et je le mets en paramètre lors du lancement dans eclipse.ini:
    -javaagent:/chemin/lombok.jar
    Regarde sur le site de lombok si tu utilises d'autre IDE pour l'activer.

    Pour le point 2, @GeneratedValue indiquera que l'id sera généré pendant l'insertion dans la base, tu ne dois pas affecter une valeur pendant l’instanciation (@AllArgsConstructor) ni pendant son utilisation.

    Pour le point 3, @ToString, par exemple tu as une relation many-to-many avec un entité Application pour l'entité Utilisateur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @ToString
    public class Utilisateur{
    ...
    @ManyToMany(mappedBy="utilisateurs")
    private Set<Application> applications = new HashSet<Application>();
    ...
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @ToString
    public class Application{
    ...
    @ManyToMany
    private Set<Utilisateur> utilisateurs = new HashSet<Utilisateur>();
    ...
    }
    Quand tu appelleras la méthode toString() de utilisateur, cela va récupérer la liste des Applications de l'Utilisateur pour appeler toString de chaque Application. Or pour chaque Application, la méthode toString() va récupérer lui aussi la liste des Utilisateurs qui lui va avec, y compris l'Utilisateur source. Dans ce cas tu auras une boucle infinie. Pour éviter cette situation, tu dois bien gérer les champs à utiliser avec l'annotation @ToString.

    A+.

  5. #5
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    bien. merci.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/12/2013, 01h20
  2. winsock.h : undefined reference...
    Par abraxas dans le forum Dev-C++
    Réponses: 14
    Dernier message: 06/08/2012, 13h42
  3. g++ : undefined reference to ...
    Par le_barbu dans le forum Autres éditeurs
    Réponses: 16
    Dernier message: 14/05/2004, 07h23
  4. [HQL]QueryException : undefined alias
    Par brice.antoine dans le forum Hibernate
    Réponses: 5
    Dernier message: 31/03/2004, 18h51
  5. Copy constructor ?
    Par Keyser dans le forum MFC
    Réponses: 4
    Dernier message: 17/02/2004, 15h33

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