|
|
|
jackson Infinite recursion (StackOverflowError)
|
|||
|---|---|---|---|
|
#18+
Происходит зацикливание при генерации 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"]->.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2012, 17:41:30 |
|
||
|
jackson Infinite recursion (StackOverflowError)
|
|||
|---|---|---|---|
|
#18+
Ну, вот же http://stackoverflow.com/questions/3325387/infinite-recursion-with-jackson-json-and-hibernate-jpa-issue Или через JsonIgnore разрываем циклические зависимости. Или вот: http://wiki.fasterxml.com/JacksonFeatureBiDirReferences ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2012, 17:53:22 |
|
||
|
jackson Infinite recursion (StackOverflowError)
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, These annotations can be used for: * Methods (getters and setters) * Fields. Это значит можно использовать над методами и полями? Я ставил над полем, при этом оно было как private так и public и это не работало. Теперь поставил над get/set и заработало) 2 часа) Это моя ошибка или документация некорректна? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2012, 18:12:56 |
|
||
|
jackson Infinite recursion (StackOverflowError)
|
|||
|---|---|---|---|
|
#18+
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 Аннотации надо полями, как я и делал, но почему то у меня это не сработало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2012, 18:15:14 |
|
||
|
jackson Infinite recursion (StackOverflowError)
|
|||
|---|---|---|---|
|
#18+
не увлекайтесь полями. это рудимент. свойства наше всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2012, 20:57:28 |
|
||
|
|

start [/forum/topic.php?fid=59&gotonew=1&tid=2132151]: |
0ms |
get settings: |
17ms |
get forum list: |
26ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
57ms |
get topic data: |
20ms |
get first new msg: |
12ms |
get forum data: |
5ms |
get page messages: |
75ms |
get tp. blocked users: |
2ms |
| others: | 350ms |
| total: | 578ms |

| 0 / 0 |
