Cyclique des références dans un bidirectionnel de nombreux de nombreux de la relation

Je vais avoir une bidirectionnel de nombreuses de nombreuses relations dans mes entités. Voir l'exemple ci-dessous:

public class Collaboration {

    @JsonManagedReference("COLLABORATION_TAG")
    private Set<Tag> tags;

}

public class Tag {

    @JsonBackReference("COLLABORATION_TAG")
    private Set<Collaboration> collaborations;

}

Quand j'essaie de sérialiser ce JSON, je suis l'exception suivante: `

"de java.lang.IllegalArgumentException: ne Peut pas gérer géré/retour
référence "COLLABORATION_TAG': arrière type de référence (java.util.Set) ne pas
compatible avec la gestion du type (foo.La Collaboration).

En fait, je sais que cela fait du sens parce que la javadoc stipule explicitement que vous ne pouvez pas utiliser @JsonBackReference sur les Collections. Ma question est, comment dois-je régler ce problème? Ce que j'ai fait pour l'instant est de supprimer l' @JsonManagedReference annotation sur le parent côté, et a ajouté l' @JsonIgnore sur le côté. Quelqu'un pourrait-il me dire quels sont les effets secondaires sont de cette approche? Existe-il d'autres suggestions?

Vous pouvez utiliser Jackson 2.0. Voir stackoverflow.com/questions/10065002/...
Le JsonIdentityInfo annotation est belle, merci @EugeneRetunsky ! J'ai trouvé cette page très utile d'apprendre comment cela fonctionne: wiki.fasterxml.com/JacksonFeatureObjectIdentity
J'ai essayé JsonManagedReference et JsonBackReference aucune de ces travaux. Mais, @SimonAndréForsberg s 'donné en lien est très intéressant et fonctionne.

OriginalL'auteur tstorms | 2012-11-29