@JsonRootName(value = "studentInfo")
@JsonInclude(value = Include.NON_EMPTY)
public class StudentInfo {
private String student;
@JsonProperty("address")
private String address;
@JsonProperty("studentName")
public String getStudent() {
return student;
}
@JsonProperty("studentUserId")
public void setStudent(String student) {
this.student = student;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
Voici ma classe Student
J'utilise cet objet dans mon API liée à l'étudiant comme DTO. Ici, j'ai utilisé la variable Student String de telle sorte que lorsque POST/PUT/
API est appelée et que studentUserId est passé, elle sera définie sur la variable Student String mais chaque fois que l'objet StudentInfo est renvoyé comme entité de réponse, il renverra le nom réel de Student qui est stocké dans la table utilisateur. Je veux juste savoir que, la façon dont j'ai utilisé la variable élève String et @JsonProperty
pour cela, est la bonne façon d'utiliser ou sa mauvaise pratique?Est-il une mauvaise pratique d'utiliser une même variable pour deux but dans DTO
Oui, c'est une mauvaise pratique. Vous devriez avoir un champ séparé 'userId' dans votre classe. En utilisant le même champ pour des données différentes, il y a juste des bugs qui peuvent arriver. Il sera également très déroutant lorsque d'autres personnes regarderont la classe plus tard. – marstran
C'est aussi un cauchemar d'écrire des tests pour cette classe si la sémantique d'un champ dépend du contexte dans lequel il est utilisé. – Fildor