【发布时间】:2017-06-05 01:50:59
【问题描述】:
我的 POJO:
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.IdClass;
import javax.persistence.Table;
import lombok.Data;
@Entity
@Table(name="user_linked_email")
@IdClass(UserLinkedEmailKey.class)
@Data
public class UserLinkedEmail implements Serializable {
/**
* serialVersionUID
*/
private static final long serialVersionUID = 1L;
@Id
private Integer userId;
@Id
private String linkedEmail;
/**
* The Following are appearing in JSON response
*/
private boolean status;
private boolean preferredFlag;
}
UserLinkedEmailKey 类:
public class UserLinkedEmailKey implements Serializable {
/**
* serialVersionUID
*/
private static final long serialVersionUID = 1L;
private Integer userId;
private String linkedEmail;
}
还有我的控制器片段:
public org.springframework.http.ResponseEntity<?> getLinkedEmails(@PathVariable(value = "userId") Integer zepoUserId) {
try {
List<UserLinkedEmail> linkedEmails = userService.getLinkedEmails(zepoUserId);
//linkedEmails till this point has all 4 fields
return new ResponseEntity<List<UserLinkedEmail>>(linkedEmails, HttpStatus.OK);
} catch (Exception e) {
//
}
JSON 中的响应如下:
[
{
"status": false,
"preferredFlag": true
},
{
"status": true,
"preferredFlag": false
},
{
"status": true,
"preferredFlag": false
}
]
尽管 Spring-Data JPA 正在从存储库返回整个对象,但为什么其他两个字段(即 userId 和 linkedEmail)没有显示在响应中?
【问题讨论】:
-
@ScaryWombat Lombok 这样做.. 因此没有明确的 getter setter.. 但为了您的信息,我什至尝试从 POJO 中删除
@Data并编写手动 getter setter.. 但结果仍然是一样 -
抱歉没有注意到lombok标签。
标签: java json spring spring-data lombok