Ich habe eine Modellklasse wie diese für den Winterschlaf
@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;
}
}
In Spring MVC Controller kann ich mit DAO das Objekt abrufen. und als JSON-Objekt zurückkehren.
@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;
}
}
Der Ansichtsteil wird mit AngularJS ausgeführt, sodass JSON wie folgt angezeigt wird
{
"userId" :2,
"userName" : "john",
"emailId" : "john@gmail.com",
"encryptedPwd" : "Co7Fwd1fXYk=",
"createdBy" : null,
"updatedBy" : null
}
Wenn ich kein verschlüsseltes Passwort festlegen möchte, setze ich dieses Feld auch auf null.
Aber ich möchte nicht so, ich möchte nicht alle Felder an die Client-Seite senden. Wenn ich nicht möchte, dass ein Passwort gesendet, aktualisiert durch, erstellt von Feldern gesendet wird, sollte mein Ergebnis JSON wie folgt sein
{
"userId" :2,
"userName" : "john",
"emailId" : "john@gmail.com"
}
Die Liste der Felder, die ich nicht an den Client senden möchte, stammt aus einer anderen Datenbanktabelle. Es ändert sich also je nach dem angemeldeten Benutzer. Wie kann ich das tun?
Ich hoffe du hast meine Frage bekommen.