Ich benutze Jackson 1.9.2 mit Hibernate/Spring MVC durch MappingJacksonHttpMessageConverter.Jackson mit bidirektionalen Eins-zu-viele-Beziehung verwechselt
Jackson kann keine bidirektionale Eins-zu-viele-Beziehung serialisieren und erstellt eine Endlosschleife.
Die Klassen Ich verwende sind:
Conversation, die eine Reihe von SMS-Instanzen hat.
Jede SMS-Instanz hat eine Reihe von Phonenumbers
Jeder Phone hat einen Mutterkontakt (dies ist die bidirektionale Viele-zu-Eins-Beziehung)
Was ich versuche zu tun, um eine Konversation zu serialisieren.
Wenn ich nicht @JsonManagedReference verwenden und @JsonBackReference dann jackson aufgrund einer Endlosschleife crashe. Aber wenn ich sie verwende, wird die Kontakt nicht in die PhoneNumber serialisiert.
Class Contact { @JsonManagedReference List<PhoneNumber> phoneNumber ; } Class PhoneNumber { @JsonBackReference Contact contact; }
Der Ausgang ist:
{ <--------------------- Conversation "id": 51, "smsSet": [ { "id": 53, "origin":, "destination": "06533844XY", "message": "Hello world!", "phoneNumbers": [ { "id": 64, "num": "06533844XY", "creationDate": 1333992533000, } ], } ], "creationDate": 1333992534000 }
anstelle von
{ <---------- 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 }
Ich benutzte die generische Version, Stackoverflow-Editor hat die
redochka
Ah ok. Ja, das scheint wahrscheinlicher; Der Fehler wäre sonst anders. – StaxMan