【发布时间】:2012-02-20 17:12:58
【问题描述】:
我有这样的双向关系...
Person.java
public class Person{
@JsonIgnore
@OneToMany(targetEntity=PersonOrganization.class, cascade=CascadeType.ALL,
fetch=FetchType.EAGER, mappedBy="person")
private Set<PeopleOrg> organization;
.....
}
PersonOrganization.java
public class PersonOrganization{
@JsonIgnore
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="PERSONID", nullable=false)
private Person person;
}
即使使用@JsonIgnore 注释,我在尝试检索人员记录时也会遇到无限递归错误。我在 1.6 版本中尝试了新的注释。 @JsonBackReference 和 @JsonManagedReference。即使那样我也得到了无限递归..
在Person 上使用@JsonBackReference("person-organization"),在PersonOrganization 上使用@JsonManagedReference("person-organization")
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]...
即使我交换注释,我仍然会收到此异常。如果映射或我使用 JSON 注释的方式有问题,请告诉我。谢谢
【问题讨论】:
标签: json spring-mvc