我使用hibernate检索兄弟列表
public class Brother {
public int brotherId;
public string name;
public List<Brother> brothers;
public Brother()
{
brothers = new ArrayList<Brother>();
}
//Getter Setter
}
在兄弟列表中使用lazy select配置Hibernate,这在Java端工作, 但问题是当我想将Brother对象序列化为JSON时。
I've got org.codehaus.jackson.map.JsonMappingException: Infinite recursion (StackOverflowError)
例如布莱恩可以让马克作为一个反面的兄弟......
我怎么解决?有没有办法表明杰克逊图书馆的最大递归次数?
我的代码,非常简单。
Brother brother = this.myservice.getBrother(4);
ObjectMapper mapper = new ObjectMapper();
System.out.println(mapper.writeValueAsString(brother));
答案 0 :(得分:3)
因循环参考而出现问题。
从
Jackson 1.6
开始,您可以使用两个注释来解决无限 在没有忽略getter / setter期间的递归问题 序列化: @JsonManagedReference 和 @JsonBackReference 。
请参阅here了解更多