Estoy usando jackson 1.9.2 con Hibernate/Spring MVC a través de MappingJacksonHttpMessageConverter.Jackson confundido con una relación uno a muchos bidireccional
Jackson no puede serializar la relación uno a muchos bidireccional y crea un bucle infinito.
Las clases que estoy usando son:
conversación que tiene un conjunto de instancias de SMS.
Cada instancia de SMS tiene un conjunto de números telefónicos
Cada Fax tiene un contacto con los padres (este es el bidireccional relación muchos-a-uno)
Lo que estoy tratando de hacer es para serializar una conversación.
Si yo no uso @JsonManagedReference y @JsonBackReference continuación Jackson crashe debido a un bucle infinito. Pero cuando las uso, la Contacto no recibe serializa en la Fax.
Class Contact { @JsonManagedReference List<PhoneNumber> phoneNumber ; } Class PhoneNumber { @JsonBackReference Contact contact; }
La salida es:
{ <--------------------- Conversation "id": 51, "smsSet": [ { "id": 53, "origin":, "destination": "06533844XY", "message": "Hello world!", "phoneNumbers": [ { "id": 64, "num": "06533844XY", "creationDate": 1333992533000, } ], } ], "creationDate": 1333992534000 }
en lugar de
{ <---------- 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 }
Estaba usando la versión genérica, el editor de stackoverflow se ha tragado el <. Creo que lo que está sucediendo es que el @JsonBackReference está siendo serializado primero. – redochka
Ah bien. Sí, eso parece más probable; el error sería diferente de lo contrario. – StaxMan