Mam taką klasę modelu do hibernacji
@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;
}
}
W kontrolerze Spring MVC za pomocą DAO jestem w stanie pobrać obiekt. i zwracając jako obiekt 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;
}
}
Część widoku jest wykonywana za pomocą AngularJS, więc otrzyma taki kod JSON
{
"userId" :2,
"userName" : "john",
"emailId" : "john@gmail.com",
"encryptedPwd" : "Co7Fwd1fXYk=",
"createdBy" : null,
"updatedBy" : null
}
Jeśli nie chcę ustawiać zaszyfrowanego hasła, ustawię to pole również na null.
Ale nie chcę tego, nie chcę wysyłać wszystkich pól po stronie klienta. Jeśli nie chcę hasła, aktualizowanego przez, utworzonego przez pola do wysłania, mój wynik JSON powinien być podobny
{
"userId" :2,
"userName" : "john",
"emailId" : "john@gmail.com"
}
Lista pól, których nie chcę wysyłać do klienta pochodząca z innej tabeli bazy danych. Więc będzie się to zmieniać w zależności od zalogowanego użytkownika. Jak mogę to zrobić?
Mam nadzieję, że masz moje pytanie.