【发布时间】:2018-03-06 11:51:09
【问题描述】:
我正在尝试使用 spring boot 和 spring data jpa 创建一个一对多的双向映射,请查看下面的实体
雇主实体
@Entity
public class Employer
{
private Long id;
private String employerName;
private List<Employee> employees;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public Long getId()
{
return id;
}
public void setId(Long id)
{
this.id = id;
}
public String getEmployerName()
{
return employerName;
}
public void setEmployerName(String employerName)
{
this.employerName = employerName;
}
@OneToMany(cascade=CascadeType.ALL, mappedBy="employer")
public List<Employee> getEmployees()
{
return employees;
}
public void setEmployees(List<Employee> employees)
{
this.employees = employees;
}
}
员工实体
@Entity
public class Employee
{
private Long id;
private String employeeName;
private Employer employer;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public Long getId()
{
return id;
}
public void setId(Long id)
{
this.id = id;
}
public String getEmployeeName()
{
return employeeName;
}
public void setEmployeeName(String employeeName)
{
this.employeeName = employeeName;
}
@ManyToOne(cascade=CascadeType.ALL, fetch = FetchType.LAZY)
public Employer getEmployer()
{
return employer;
}
public void setEmployer(Employer employer)
{
this.employer = employer;
}
}
雇主回购
public interface EmployerServices extends JpaRepository<Employer, Long> {
}
员工回购
public interface EmployeeServices extends JpaRepository<Employee, Long> {
}
REST 控制器是
@RestController
public class Controller {
@Autowired EmployeeServices employeeServices;
@Autowired EmployerServices employerServices;
@GetMapping("/getempr")
public Object getempr(){
return employerServices.findOne(1L);
}
}
它看起来像一个内讧循环,我的服务器抛出错误 getOutputStream() 已经被调用了这个响应。
I used @JsonBackReference & @JsonManagedReference
注释,但问题是它像一对多一样工作
{
"id":1,
"employerName":"employer",
"employees":[
{"id":1,"employeeName":"emp1"},
{"id":2,"employeeName":"emp2"}
]
}
如果我想引起多对一的关注,就像所有员工与雇主一样。输出是
[
{
"id":1,
"employeeName":"emp1"
},
{
"id":2,
"employeeName":"emp2"}
]
它没有向我显示雇主详细信息。
请向我建议我做错了什么。提前谢谢!!
【问题讨论】:
标签: spring spring-boot spring-data hibernate-mapping bidirectional