org.codehaus.jackson转换对象为json字符串一对多关联关系出现死循环

[b]jackson的ObjectMapper在转换对象为json字符串时,如果对象内包含子类(或存在一对多的关联关系)会出现死循环[/b]
[code="java"]
org.codehaus.jackson.map.JsonMappingException: Infinite recursion (StackOverflowError) (through reference chain: com.blog.pojo.Album["photos"]->org.hibernate.collection.PersistentBag[0]->com.blog.pojo.Photo["album"]->com.blog.pojo.Album["photos"]->org.hibernate.collection.PersistentBag[0]->com.blog.pojo.Photo["album"]->com.blog.pojo.Album["photos"]->org.hibernate.collection.PersistentBag[0]->com.blog.pojo.Photo["album"]->com.blog.pojo.Album["photos"]->org.hibernate.collection.PersistentBag[0]->//
//原因:这里两个实体类: Album(相册) 和 photo(照片) 是一对多双向关联
//死循环原因: JSON无法对Album的photos属性进去JSON转换
//[b]解决方法[/b]在多方类头部使用
org.codehaus.jackson.annotate.JsonIgnoreProperties //注解
//[b]一方[/b]
@JsonIgnoreProperties(value={"photos"})

@Entity
@SuppressWarnings("serial")
@JsonIgnoreProperties(value={"photos"})
public class Album implements java.io.Serializable {

版权声明:本文为renfeier5211314原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。