我正在使用REST API,而且我遇到了一些奇怪的问题。 我想以JSON(我的请求对象)的形式返回所有细节和关系。 有我的存储库:
@Repository("requestRepository")
public interface RequestRepository extends JpaRepository<Request, Integer> {
Request findByTitle(String title);
List<Request> findAll();
}
我的控制器方法:
{
@Autowired
private RequestServiceImpl requestService;
@RequestMapping("/getall")
public List<Request> findAll() {
for (Request req:requestService.findAllRequests()) {
System.out.println("Profession:" + req.getProfession().getName());
}
return requestService.findAllRequests();
}
}
映射:
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "profession_id")
private Profession profession;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "profession")
private List<Request> requests;
我还使用@JsonManagedReference和@JsonBackReference与getter。
当我调用http GET时,我收到的JSON如下:
[
{
"id": 1,
"title": "Hydraulik na juz!!!",
"minPayment": 200,
"maxPayment": 300,
"description": "short description",
"active": 1,
"creationDate": "2017-11-10"
},
{
"id": 2,
"title": "Potrzebny kierowca do Warszawy",
"minPayment": 100,
"maxPayment": 700,
"description": "another desc...",
"active": 1,
"creationDate": "2017-11-10"
}
]
JSON中的职业和请求之间没有关系。即使在我的数据库中,我也看到了它们之间的关系:
我尝试将抓取类型从LAZY更改为EAGER,但它没有帮助。我不知道这个JSON与职业和请求之间没有关系的原因是什么