Java 即使使用@JsonManagedReference注释,也会发生JPA EJB无限递归
我觉得我对Jackson的序列化/反序列化是如何发生的做了大量的研究,我发现这非常有用。然而,尽管我尽了最大的努力,我仍然收到递归JSON。我有两种模式——我们称之为公司和员工Java 即使使用@JsonManagedReference注释,也会发生JPA EJB无限递归,java,json,jpa,jackson,Java,Json,Jpa,Jackson,我觉得我对Jackson的序列化/反序列化是如何发生的做了大量的研究,我发现这非常有用。然而,尽管我尽了最大的努力,我仍然收到递归JSON。我有两种模式——我们称之为公司和员工 Company and Employee are joined in the database in a normalized table mapping FK's COMPANY_ID to EMPLOYEE_ID When an Employee moves to another Company, they are
Company and Employee are joined in the database in a normalized table mapping FK's COMPANY_ID to EMPLOYEE_ID
When an Employee moves to another Company, they are still an Employee.
Companies have a 1:N relationship with Employees
从员工模型中:
@ManyToOne
@JoinTable(name="COMPANY_EMPLOYEE",
joinColumns =
{ @JoinColumn(name = "EMPLOYEE_ID") },
inverseJoinColumns =
{ @JoinColumn(name = "COMPANY_ID") })
@JsonManagedReference
private Company company;
public Company getCompany() { return this.Company; }
public void setCompany(Company company) {this.company = company;}
现在,从公司模式来看:
@OneToMany(mappedBy="company")
@JsonBackReference
private List<Employee> employees;
public List<Employee> getEmployees() { return employees; }
public void setEmployees(List<Employees> employees) {
this.employees = employees;
}
@OneToMany(mappedBy=“company”)
@JsonBackReference
私人名单雇员;
public List getEmployees(){return employees;}
公共雇员(列出雇员){
这是。雇员=雇员;
}
我的getter上需要
@JsonIgnore
吗?有人知道我遗漏了什么吗?我希望员工在检索一个或多个公司时不要出现。不过,我确实希望每个员工都有一家公司。你有没有试着把JsonIgnore放在getter上?它是否达到了预期效果?您是否尝试将JsonIgnore放在getter上?它是否达到了预期的效果?