У меня такие двусторонние отношения ...
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
я получаю бесконечную ошибку рекурсии при попытке для получения записей Person. Я пробовал новые аннотации в версии 1.6. @JsonBackReference
и @JsonManagedReference
. Даже тогда я получаю бесконечную рекурсию ..
With @JsonBackReference («человек-организация»)
на Person
и @JsonManagedReference («человек-организация»)
на PersonOrganization
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 ann отзывы. Спасибо
для меня я попробовал @JsonIgnore, @JsonManagedReference / JsonBackReference, но ничто не работало, пока я не считал этот Исключение брошенное ["hibernateLazyInitializer"] решение 1 и этот Исключение, которое брошенное ["hibernateLazyInitializer"] решение 1 для решения 2
состоит в том, чтобы изменить от выборки. ЛЕНИВЫЙ для выборки. НЕТЕРПЕЛИВЫЙ, и решение 2 использует @JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
, и, конечно, используйте @JsonIgnore в обоих решениях