Sto usando jackson 1.9.2 con Hibernate/Spring MVC tramite MappingJacksonHttpMessageConverter.Jackson ha confuso la relazione uno-a-uno bidirezionale
Jackson non può serializzare la relazione bidirezionale uno-a-molti e crea un ciclo infinito.
Le classi che sto usando sono:
conversazione, che ha una serie di istanze di SMS.
Ogni istanza SMS ha una serie di PhoneNumbers
Ogni PhoneNumber ha un contatto genitore (questo è il bidirezionale relazione molti-a-uno)
Quello che sto cercando di fare è per serializzare una conversazione.
Se io non uso @JsonManagedReference e @JsonBackReference poi Jackson crashe a causa di un ciclo infinito. Ma quando li uso, il contatto non ottenere serializzato nella PhoneNumber.
Class Contact { @JsonManagedReference List<PhoneNumber> phoneNumber ; } Class PhoneNumber { @JsonBackReference Contact contact; }
Il risultato è:
{ <--------------------- Conversation "id": 51, "smsSet": [ { "id": 53, "origin":, "destination": "06533844XY", "message": "Hello world!", "phoneNumbers": [ { "id": 64, "num": "06533844XY", "creationDate": 1333992533000, } ], } ], "creationDate": 1333992534000 }
anziché
{ <---------- conversation "id": 51, "smsSet": [ { "id": 53, "origin":, "destination": "06533844XY", "message": "Hello world!", "phoneNumbers": [ { "id": 64, "num": "06533844XY", "creationDate": 1333992533000, "contact": <--------------------- Missing part { "id": 12, "name": "Samuel Jackson", "primaryNumber": "06533844XY" } } ], } ], "creationDate": 1333992534000 }
Stavo usando la versione generica, l'editor di stackoverflow ha ingoiato il <. Penso che quello che sta succedendo sia che la @JsonBackReference venga serializzata per prima. – redochka
Ah ok. Sì, sembra più probabile; l'errore sarebbe diverso altrimenti. – StaxMan