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

erreur lors d'ajout d'une méthode findBy avec JPA


Sujet :

Spring Boot Java

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut erreur lors d'ajout d'une méthode findBy avec JPA
    Bonjour,

    J'ai une interface Membre auquel je dois ajouter un attribut qui demande à JPA de faire une rechercher sur le nom d'un membre.
    Mais à l'ajout de cette ligne , lorsque je fait ma requête de type GET, j'ai une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    The request URL can't be reached
    si je met en commentaire
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
          public Membre findByMembreName(String username);

    ma requête GET fonctionne de nouveau.

    - le nom finByMembreName doit t'il respecté un format ? ou qu'on est libre de mettre ce que l'on veut ? ou qu'il y a une majuscule ou minuscule qu'il faut respecter ?
    - Est ce ma classe Membre qui à un problème ?
    - Il manque des choses à ma classe Membre ?
    - Ou autre chose ?

    Nom : jpa.png
Affichages : 319
Taille : 74,7 Ko

    Code java : 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
     
    public interface MembreRepository 
        extends JpaRepository<Membre,Long>{
            public Membre findByMembreName(String username);
    }
     
    @Entity
     
    public class Membre{
        @Id @GeneratedValue
        private Long id;
        @Column(unique=true)
        private String username;
        private String passsword;
        @ManyToMany(fetch=FetchType.EAGER)
        private Collection<AppRole> roles = new ArrayList<>();
     
        public Membre(
            Long id, String username, String passsword, Collection<AppRole> roles) {
            this.id = id;
            this.username = username;
            this.passsword = passsword;
            this.roles = roles;
        }
     
        public Membre() {
        }
     
        public Long getId() {
            return this.id;
        }
     
        public void setId(Long id) {
            this.id = id;
        }
     
        public String getUsername() {
            return this.username;
        }
     
        public void setUsername(String username) {
            this.username = username;
        }
     
        public String getPasssword() {
            return this.passsword;
        }
     
        public void setPasssword(String passsword) {
            this.passsword = passsword;
        }
     
        public Collection<AppRole> getRoles() {
            return this.roles;
        }
     
        public void setRoles(Collection<AppRole> roles) {
            this.roles = roles;
        }
     
    }
    merci de vos réponses

  2. #2
    Membre expérimenté Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 1 679
    Points
    1 679
    Par défaut
    Bonjour,

    Et avec

    Citation Envoyé par keokaz Voir le message
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
          public Membre findByUsername(String username);
    ça donne quoi ?

  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
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Citation Envoyé par keokaz Voir le message
    - le nom finByMembreName doit t'il respecté un format ? ou qu'on est libre de mettre ce que l'on veut ? ou qu'il y a une majuscule ou minuscule qu'il faut respecter ?
    La classe Membre n'as pas d’attribut membreName mais username et passsword.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    List<Membre> findByUsername(String username);
    List<Membre> findByUsernameAndPasssword(String username, String pswd);
    Il y a des règles de nomenclature à respecter pour les noms des méthodes à utiliser https://docs.spring.io/spring-data/j...query-creation

    A+.

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    Merci beaucoup,
    J'avais penser que spring allais tout seul et modifier le nom de la méthode findByxx, mais c'est bien findByUsername,
    au début j'avais mis findByUsername mais cela ne fonctionnais et j'ai fais fausse route ,j'ai du corriger une autre ligne de code quelque part ...

    les 2 solutions proposé ne pose plus de problème.
    Pour le moment je sais que je peux avancer mais je n'ai pas encore utilisé cette interface
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public interface MembreRepository 
        extends JpaRepository<Membre,Long>{
            public Membre findByUsername(String username);
    }


    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    List<Membre> findByUsername(String username);

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 12/02/2017, 20h10
  2. Erreur lors de l'accès à une méthode
    Par Pouettee dans le forum JavaFX
    Réponses: 8
    Dernier message: 16/09/2014, 07h52
  3. [AC-2007] Erreur lors de 'ajout de --tous-- dans une liste deroulante
    Par bernards111 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 13/12/2010, 11h20
  4. Erreur lors de modification d'une table
    Par seb.49 dans le forum SQL
    Réponses: 11
    Dernier message: 13/01/2003, 17h16

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