【发布时间】:2020-10-08 15:48:32
【问题描述】:
我的 REST api GET 方法返回的 Json 有问题。
这就是我的实体的样子:
@Entity
public class Employee {
...
@ManyToOne(fetch = FetchType.EAGER, optional = false)
@JoinColumn(name = "department_id", nullable = true)
private Department department;
}
@Entity
public class Department {
...
@OneToMany(mappedBy = "department", fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JsonBackReference
private Set<Employee> employees;
}
这是我得到的答案,而我正在尝试通过其 id 获取员工:
{
"id": 1,
"surname": "smith",
"department": {
"id": 1,
"name": "HR",
"room": "13"
}
}
现在,我想获得一个简单的 ID:"department_id": 1,而不是整个 Department 对象,我不知道该怎么做。
第二个问题:在这种情况下,REST api 中的good practise 是什么?我应该保持原样吗?只公开 id (我问你怎么做);还是使用 DTO 而根本不显示它?
此外,无论如何我都会将 _links 添加到该用户的部门,在这种情况下,我认为只留下 id 应该没问题(如果我错了,请告诉我)。
期待您的回答!
【问题讨论】:
标签: spring-boot rest spring-rest