我使用的是Spring Data Rest。它工作得很好,除了我有一个REST调用,我只需要返回top对象,而不返回OneToMany对象。
我该怎么做呢?
例如:我有一个带有"/States“和"StatesWithHotels”的Rest接口。有一个从State JPA对象到Hotel对象的OneToMany。"/States“应该只返回State,而"StatesWithHotels”应该返回State对象和相应的酒店对象。"StatesWithHotels“可以完美地返回States和Hotels。但是"States“我只需要返回States,但是它同时返回了这两个。
发布于 2014-12-11 23:39:53
这就是我想出来的。顶层对象遍历并将次对象设置为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;
发布于 2014-12-11 21:22:34
您需要将该集合的获取模式设置为lazy
。这将确保集合在被访问之前不会被检索。
@OneToMany(fetch=FetchType.LAZY)
如果不想在返回时序列化它,可能还需要用
@JsonIgnore
https://stackoverflow.com/questions/27432575
复制相似问题