Java实体里两个对象有关联关系,互相引用,比如,在一对多的关联关系里,
老师对象,引用了学生列表
学生对象,引用了所属老师
就构成了互相引用。
在spring MVC中,要使其中的一个对像响应成json会造成无限递归引用的异常:
org.codehaus.jackson.map.JsonMappingException: Infinite recursion (StackOverflowError) (through reference chain: com.entity.Person["organization"]->org.hibernate.collection.PersistentSet[0]->com.entity.PersonOrganization["person"]->com.entity.Person["organization"]->org.hibernate.collection.PersistentSet[0]...
因为要保持关联关系,不能在对象里解除掉关系解决这个异常,在对象的任一方的get方法上添加
注解:
比如在学生实体Student上添加
@ManyToOne @JoinColumn(name="TEACHER_ID") @JsonIgnore public Teacher getTeacher()
即可解决无限递归引用的问题。