我有一个名为“员工”的实体,它与自己有联系。联接表示谁是该员工的经理。当我查询记录时,我得到了员工的整个层次结构。
我希望实现的是只获取经理的几个字段,而不希望获取员工的经理的经理。
我尝试使用但无法获得预期的输出来执行此操作。也使用过。@NamedEntityGraph
Projections
我还尝试了这里提到的方法
注意 - 我不想使用注释@Query
@Entity
public class Employee {
@Id
@Column(name = "employeeId", nullable = false)
private String employeeId;
@Column(name = "firstName", nullable = false)
private String firstName;
@Column(name = "lastName", nullable = false)
private String lastName;
@Column(name = "middleName")
private String middleName;
@Column(name = "dateOfJoining", nullable = false)
private LocalDate dateOfJoining;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "line_manager_id")
private Employee manager;
}
实际结果 -
{
"firstName":"Super",
"lastName":"Manager",
"middleName":"",
"dateOfJoining":"2012-12-31",
"manager":{
"firstName":"Super",
"lastName":"Manager",
"middleName":"",
"dateOfJoining":"2012-12-31",
"manager":{
"firstName":"Admin",
"lastName":"User",
"middleName":"",
"dateOfJoining":"2012-12-31",
"manager":{
"firstName":"Admin",
"lastName":"User",
"middleName":"",
"dateOfJoining":"2012-12-31",
"manager": null,
"employeeId":"P67"
},
"employeeId":"P68"
},
"employeeId":"P69"
},
"employeeId":"P70"
}
预期成果
{
"firstName":"Super",
"lastName":"Manager",
"middleName":"",
"dateOfJoining":"2012-12-31",
"manager":{
"firstName":"Super",
"lastName":"Manager",
"employeeId":"P69"
},
"employeeId":"P70"
}
炎炎设计
慕丝7291255
相关分类