java实体类序列化 id,java - Spring引导@ResponseBody没有序列化实体id

有一个奇怪的问题,无法弄清楚如何处理它。有简单的POJO:

@Entity

@Table(name = "persons")

public class Person {

@Id

@GeneratedValue

private Long id;

@Column(name = "first_name")

private String firstName;

@Column(name = "middle_name")

private String middleName;

@Column(name = "last_name")

private String lastName;

@Column(name = "comment")

private String comment;

@Column(name = "created")

private Date created;

@Column(name = "updated")

private Date updated;

@PrePersist

protected void onCreate() {

created = new Date();

}

@PreUpdate

protected void onUpdate() {

updated = new Date();

}

@Valid

@OrderBy("id")

@OneToMany(mappedBy = "person", fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true)

private List phoneNumbers = new ArrayList<>();

public Long getId() {

return id;

}

public void setId(Long id) {

this.id = id;

}

public String getFirstName() {

return firstName;

}

public void setFirstName(String firstName) {

this.firstName = firstName;

}

public String getMiddleName() {

return middleName;

}

public void setMiddleName(String middleName) {

this.middleName = middleName;

}

public String getLastName() {

return lastName;

}

public void setLastName(String lastName) {

this.lastName = lastName;

}

public String getComment() {

return comment;

}

public void setComment(String comment) {

this.comment = comment;

}

public Date getCreated() {

return created;

}

public Date getUpdated() {

return updated;

}

public List getPhoneNumbers() {

return phoneNumbers;

}

public void addPhoneNumber(PhoneNumber number) {

number.setPerson(this);

phoneNumbers.add(number);

}

@Override

public String toString() {

return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);

}

}

@Entity

@Table(name = "phone_numbers")

public class PhoneNumber {

public PhoneNumber() {}

public PhoneNumber(String phoneNumber) {

this.phoneNumber = phoneNumber;

}

@Id

@GeneratedValue

private Long id;

@Column(name = "phone_number")

private String phoneNumber;

@ManyToOne

@JoinColumn(name = "person_id")

private Person person;

public Long getId() {

return id;

}

public void setId(Long id) {

this.id = id;

}

public String getPhoneNumber() {

return phoneNumber;

}

public void setPhoneNumber(String phoneNumber) {

this.phoneNumber = phoneNumber;

}

public Person getPerson() {

return person;

}

public void setPerson(Person person) {

this.person = person;

}

@Override

public String toString() {

return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);

}

}

和休息终点:

@ResponseBody

@RequestMapping(method = RequestMethod.GET)

public List listPersons() {

return personService.findAll();

}

在json响应中有除Id之外的所有字段,我需要在前端编辑/删除人。 如何配置spring boot以序列化Id?

这就是现在响应的样子:

[{

"firstName": "Just",

"middleName": "Test",

"lastName": "Name",

"comment": "Just a comment",

"created": 1405774380410,

"updated": null,

"phoneNumbers": [{

"phoneNumber": "74575754757"

}, {

"phoneNumber": "575757547"

}, {

"phoneNumber": "57547547547"

}]

}]

UPD有双向hibernate映射,也许它与问题有某种关系。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值