J'ai une classe de modèle comme celle-ci, pour l'hibernation
@Entity
@Table(name = "user", catalog = "userdb")
@JsonIgnoreProperties(ignoreUnknown = true)
public class User implements java.io.Serializable {
private Integer userId;
private String userName;
private String emailId;
private String encryptedPwd;
private String createdBy;
private String updatedBy;
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "UserId", unique = true, nullable = false)
public Integer getUserId() {
return this.userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
@Column(name = "UserName", length = 100)
public String getUserName() {
return this.userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
@Column(name = "EmailId", nullable = false, length = 45)
public String getEmailId() {
return this.emailId;
}
public void setEmailId(String emailId) {
this.emailId = emailId;
}
@Column(name = "EncryptedPwd", length = 100)
public String getEncryptedPwd() {
return this.encryptedPwd;
}
public void setEncryptedPwd(String encryptedPwd) {
this.encryptedPwd = encryptedPwd;
}
public void setCreatedBy(String createdBy) {
this.createdBy = createdBy;
}
@Column(name = "UpdatedBy", length = 100)
public String getUpdatedBy() {
return this.updatedBy;
}
public void setUpdatedBy(String updatedBy) {
this.updatedBy = updatedBy;
}
}
Dans le contrôleur Spring MVC, en utilisant DAO, je suis capable d'obtenir l'objet. et retour en tant qu'objet JSON.
@Controller
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "/getUser/{userId}", method = RequestMethod.GET)
@ResponseBody
public User getUser(@PathVariable Integer userId) throws Exception {
User user = userService.get(userId);
user.setCreatedBy(null);
user.setUpdatedBy(null);
return user;
}
}
La vue de la pièce se fait à l'aide d'AngularJS, elle obtiendra donc JSON comme ceci
{
"userId" :2,
"userName" : "john",
"emailId" : "john@gmail.com",
"encryptedPwd" : "Co7Fwd1fXYk=",
"createdBy" : null,
"updatedBy" : null
}
Si je ne veux pas définir un mot de passe chiffré, je définirai également ce champ comme nul.
Mais je ne veux pas comme ça, je ne veux pas envoyer tous les champs côté client. Si je ne veux pas de mot de passe, mis à jour par, créé par les champs à envoyer, mon résultat JSON devrait être comme
{
"userId" :2,
"userName" : "john",
"emailId" : "john@gmail.com"
}
La liste des champs que je ne veux pas envoyer au client provenant d'une autre table de base de données. Cela changera donc en fonction de l'utilisateur connecté. Comment puis-je faire cela?
J'espère que vous avez ma question.