我正在使用Spring Data Rest。它工作得很好,除了我有一个REST调用,我需要返回顶层对象而不返回OneToMany对象。
我该怎么做?
例如: 所以我有一个带有“/ States”和“StatesWithHotels”的Rest接口。从州JPA对象到Hotel JPA对象有一个OneToMany。 “/ States”应仅返回状态,“StatesWithHotels”应返回具有相应Hotel对象的State对象。 “StatesWithHotels”的完美之处在于它将国家和酒店归还。但是“国家”我只需要返回国家,但它正在返回两者。
答案 0 :(得分:1)
所以这就是我想出来的。 顶级对象迭代并将辅助对象设置为null
例如:
@RequestMapping(value = "/getStates", method = RequestMethod.GET,
headers = { "Accept=application/xml" }, produces = "application/xml")
public @ResponseBody StateList getStates() {
List<StateList> tmpStateList = countryRepo.findByStates();
for(State tmpState : tmpStateList ){
tmpState.setHotels(null);
}
StateList tmpResult = new StateList(tmpStateList );
return tmpResult;
答案 1 :(得分:0)
您需要将该集合的获取模式设置为lazy
。这将确保在访问之前不会检索该集合。
@OneToMany(fetch=FetchType.LAZY)
如果您希望在返回时不将其序列化,您可能还需要使用
进行注释。@JsonIgnore