1
votes

Lombok ne reconnaît pas les getters et les setters

J'essaie de configurer lombok dans mes sts.

Jusqu'à présent, j'ai effectué ces étapes: J'ai téléchargé le fichier jar lambok. J'ai exécuté le fichier et spécifié le chemin pour sts.exe, puis j'ai cliqué sur installer. J'ai ajouté les dépendances requises dans mon pom.xml

 @PutMapping(value="/students/{id}")
public Student updateStudent(@PathVariable("id") @Min(1) int id, @Valid 
@RequestBody Student newstd) {
    Student stdu = studentservice.findById(id)
                                 .orElseThrow(()->new 
  StudentNotFoundException("Student with "+id+" is Not Found!"));
    stdu.setFirstname(newstd.getFirstname());
    stdu.setLastname(newstd.getLastname());
    stdu.setEmail(newstd.getEmail());
    return studentservice.save(stdu); 
}           
@DeleteMapping(value="/students/{id}")
public String deleteStudent(@PathVariable("id") @Min(1) int id) {
    Student std = studentservice.findById(id)
                                 .orElseThrow(()->new 
StudentNotFoundException("Student with "+id+" is Not Found!"));
    studentservice.deleteById(std.getId());
    return "Student with ID :"+id+" is deleted";            
}

J'ai également édité mon fichier sts.ini. Après l'installation de lambok.jar, la ligne suivante était déjà là à la fin du fichier

package com.crud.msstudent.models;

 import java.io.Serializable;

import javax.persistence.*;
import javax.validation.constraints.NotEmpty;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.experimental.Accessors;

@Getter
@Setter
@Accessors(chain=true)
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name = "student")
public class Student implements Serializable {
private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;

@NotEmpty(message = "First name is required")
private String firstname;

@NotEmpty(message = "Last name is required")
private String lastname;

@Column(nullable = true, name = "email")
private String email;

}

donc je l'ai déplacée à côté de

  The method getFirstname() is undefined for the type Student

Ensuite, j'ai nettoyé mon projet. J'ai également mis à jour mon projet. Fermé sts, puis réexécuté mon application. Mais il ne reconnaît toujours pas les getters dans mon fichier. Cela produit l'erreur suivante.

-vmargs

Student.java:

-javaagent:E:\JAVA SOFTWARES\spring-tool-suite-3.9.8.RELEASE-e4.11.0-win32-x86_64\sts-bundle\sts- 
 3.9.8.RELEASE\lombok.jar

L'erreur est affichée dans mon StudentController.java déposer. Voici une partie du code:

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>

Veuillez me dire ce qui me manque?


15 commentaires

Quel IDE utilisez-vous?


afficher la classe Student


avez-vous ajouté une annotation @ getter @ setter ou @ data à votre classe?


@AshishKarn J'utilise STS.


@ user7294900 Bien sûr Veuillez vérifier ma question mise à jour


@Habil oui. Veuillez vérifier ma question mise à jour


Tout semble correct. Effectuez une nouvelle installation en utilisant ce lien et vérifiez à l'emplacement ~ /. m2 / référentiel / org / projectlombok / lombok /


@Habil que voulez-vous dire?


@AshishKarn J'ai déjà tout fait dans ce lien mais malheureusement le problème est toujours là. et oui, il est là dans ~ / .m2 / repository / org / projectlombok / lombok /


le traitement des annotations doit être activé


@Bohemian Comment puis-je activer le traitement des annotations dans STS? Je ne trouve pas une telle option ici.


La commande mvnw.cmd clean compile réussit-elle?


où dois-je exécuter cette commande? mvnw.cmd compilation propre


Suivez les instructions d'installation de Lombok ici


Veuillez publier votre fichier eclipse.ini entier.


4 Réponses :


0
votes

Si vous utilisez STS, il vous manque peut-être le plugin nécessaire. Pour plus de détails, veuillez consulter le site de Lombok pour savoir comment l'installer.


1 commentaires

J'ai le plugin requis comme mentionné et j'ai déjà spécifié le chemin de sts.exe.



0
votes

Si la commande mvnw.cmd clean compile fonctionne normalement, essayez de recharger le projet.

 entrez la description de l'image ici


0 commentaires

0
votes

utilisez-vous Eclipse IDE? dans certains cas, vous devez mettre à jour le projet explicitement dans eclipse.

mieux vaut éviter d'utiliser lombok

public class Student implements Serializable {

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;

@NotEmpty(message = "First name is required")
private String firstname;

@NotEmpty(message = "Last name is required")
private String lastname;

@Column(nullable = true, name = "email")
private String email;

public Student()
 {
  }

 public Student(int id,String firstname,String lastname,String email)
 {
          this.id=id;
          this.firstname=firstname;
          this.lastname=lastname;
          this.email=email
   
 }



public int getId()
    {
    return id;
    }
   public void setId(int id)
   {
       this.id=id;
   }

   public String getFirstname()
    {
    return firstname;
    }
   public void setFirstname(String firstname)
   {
       this.firstname=firstname;
   }

   public String getLastname()
    {
    return lastname;
    }
   public void setLastname(String lastname)
   {
       this.lastname=lastname;
   }

public String getEmail()
    {
    return email;
    }
   public void setEmail(String email)
   {
       this.email=email;
   }
 
  
 


2 commentaires

J'utilise STS.


créer des getters et des setters explicites alors tout ira bien



0
votes

Est-ce que cela aide (source) :

Pour inclure lombok code > en tant que dépendance 'fournie', ajoutez-la à votre bloc comme ceci:

<annotationProcessorPaths>
    <path>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.12</version>
    </path>
</annotationProcessorPaths>

JDK9 + avec module-info.java La configuration du plug-in du compilateur doit contenir les éléments suivants:

<dependencies>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.12</version>
        <scope>provided</scope>
    </dependency>
</dependencies>


0 commentaires