Ho una classe modello come questa, per l'ibernazione
@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;
}
}
Nel controller Spring MVC, utilizzando DAO, sono in grado di ottenere l'oggetto. e restituendo come oggetto 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 parte di visualizzazione viene eseguita utilizzando AngularJS, quindi otterrà JSON in questo modo
{
"userId" :2,
"userName" : "john",
"emailId" : "john@gmail.com",
"encryptedPwd" : "Co7Fwd1fXYk=",
"createdBy" : null,
"updatedBy" : null
}
Se non voglio impostare la password crittografata, imposterò anche quel campo come null.
Ma non voglio in questo modo, non voglio inviare tutti i campi al lato client. Se non voglio che la password, updatedby, createdby campi da inviare, il mio risultato JSON dovrebbe essere come
{
"userId" :2,
"userName" : "john",
"emailId" : "john@gmail.com"
}
L'elenco dei campi che non voglio inviare al client proveniente da un'altra tabella del database. Quindi cambierà in base all'utente che ha effettuato l'accesso. Come posso farlo?
Spero che tu abbia la mia domanda.