최대 절전 모드를 위해 이와 같은 모델 클래스가 있습니다.
@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;
}
}
Spring MVC 컨트롤러에서 DAO를 사용하여 객체를 얻을 수 있습니다. 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;
}
}
보기 부분은 AngularJS를 사용하여 수행되므로 다음과 같이 JSON을 얻습니다.
{
"userId" :2,
"userName" : "john",
"emailId" : "john@gmail.com",
"encryptedPwd" : "Co7Fwd1fXYk=",
"createdBy" : null,
"updatedBy" : null
}
암호화 된 암호를 설정하지 않으려면 해당 필드도 null로 설정합니다.
그러나 나는 이것을 원하지 않으며 모든 필드를 클라이언트 측에 보내고 싶지 않습니다. password, updatedby, createdby 필드를 보내지 않으려면 결과 JSON은 다음과 같아야합니다.
{
"userId" :2,
"userName" : "john",
"emailId" : "john@gmail.com"
}
다른 데이터베이스 테이블에서 오는 클라이언트로 보내지 않으려는 필드 목록입니다. 따라서 로그인 한 사용자에 따라 변경됩니다. 어떻게해야합니까?
제 질문을 받으 셨기를 바랍니다.