Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / jackson Infinite recursion (StackOverflowError) / 6 сообщений из 6, страница 1 из 1
02.04.2012, 17:41:30
    #37735031
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jackson Infinite recursion (StackOverflowError)
Происходит зацикливание при генерации json.
Я сделал все как написано в этой статье
Все равно не помогло)




@Entity
@Table(name="event")
public class Event implements Comparable, Serializable{


@JsonManagedReference("event-image")
@OneToMany(mappedBy="parent")
private Set<Image> images = new HashSet<Image>();


}



@Entity
@Table(name="image")
public class Image implements Serializable {


@JsonBackReference("event-image")
@ManyToOne
private Event parent;


}

Контроллер

public @ResponseBody Event hello() {

Event load = eventService.load(1);

return load;

}


Ошибка

org.codehaus.jackson.map.JsonMappingException: Infinite recursion (StackOverflowError) (through reference chain: logic.Event["images"]->org.hibernate.collection.PersistentSet[0]->logic.Image["parent"]->logic.Event["images"]->org.hibernate.collection.PersistentSet[0]->logic.Image["parent"]->logic.Event["images"]->....
...
Рейтинг: 0 / 0
02.04.2012, 17:53:22
    #37735050
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jackson Infinite recursion (StackOverflowError)
Ну, вот же
http://stackoverflow.com/questions/3325387/infinite-recursion-with-jackson-json-and-hibernate-jpa-issue
Или через JsonIgnore разрываем циклические зависимости.
Или вот:
http://wiki.fasterxml.com/JacksonFeatureBiDirReferences
...
Рейтинг: 0 / 0
02.04.2012, 18:12:56
    #37735088
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jackson Infinite recursion (StackOverflowError)
Blazkowicz, These annotations can be used for: * Methods (getters and setters) * Fields. Это значит можно использовать над методами и полями?

Я ставил над полем, при этом оно было как private так и public и это не работало.
Теперь поставил над get/set и заработало) 2 часа)
Это моя ошибка или документация некорректна?
...
Рейтинг: 0 / 0
02.04.2012, 18:15:14
    #37735091
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jackson Infinite recursion (StackOverflowError)
Example

Here is a simple example of a double-linked linked list, where references are both in same class


public class Node
{
public String name; // simple property

// reference with default name
@JsonManagedReference public SimpleTreeNode child; // forward reference, serialized
@JsonBackReference public Node parent; // backward reference, not serialized


Аннотации надо полями, как я и делал, но почему то у меня это не сработало.
...
Рейтинг: 0 / 0
02.04.2012, 20:57:28
    #37735314
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jackson Infinite recursion (StackOverflowError)
не увлекайтесь полями. это рудимент. свойства наше всё.
...
Рейтинг: 0 / 0
02.04.2012, 21:42:05
    #37735359
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
jackson Infinite recursion (StackOverflowError)
Blazkowicz, а все таки, почему так?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / jackson Infinite recursion (StackOverflowError) / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]