项目中使用了AJAX技术,JAR包为:json-lib.jar, 在开发过程中遇到了一个JSON-LIB和Hibernate有关的问题:
net.sf.json.JSONException: There is a cycle in the hierarchy!
at net.sf.json.util.CycleDetectionStrategy$StrictCycleDetectionStrategy.handleRepeatedReferenceAsObject(CycleDetectionStrategy.
主外键关联,产生循环错误
需设置过滤,去掉关联
Java
public ModelAndView getRooms(HttpServletResponse response,@PathVariable Long hotelsid){ List<Room> roomList=roomService.findByHotelsid(hotelsid); JsonConfig jsonConfig = new JsonConfig(); jsonConfig.setJsonPropertyFilter(new net.sf.json.util.PropertyFilter(){ @Override public boolean apply(Object source, String name, Object value) { if(name.equals("hotels")){ return true; }else{ return false; } }}); JSONArray json=JSONArray.fromObject(roomList,jsonConfig); try { PrintWriter out=response.getWriter(); out.println(json.toString()); out.flush(); out.close(); } catch (IOException e) { e.printStackTrace(); } return null; }