2017-05-01 6 views
1

J'ai deux classesSolving référence circulaire

classe A a

private B messageOwner; 

classe B a

@JsonIgnore 
private List<A> messages = new ArrayList<>(); 

maintenant quand je veux envoyer la classe A JSON je veux qu'il contient aussi informations sur la classe B (sans liste)

encore en utilisant cela il omet complètement la classe B. J'ai essayé d'utiliser @JsonManagedReference, @JsonBackReference mais le résultat était le même.

Quelle est la bonne façon de résoudre cette référence circulaire?

+1

Montrez-nous votre code – ThomasRS

+0

Je ne vois pas comment c'est un problème avec les références circulaires sauf si vous dites que cela fonctionne sans la liste des messages. Quelle est la valeur de la relation messageOwner, et comment avez-vous lu dans A et B? – Chris

Répondre

0
@Transient 
private B messageOwner; 

Cela fait pour la sérialisation JSON ce que le modificateur de type transient fait pour la sérialisation normale. Si la bibliothèque JSON le supporte.

Bien sûr, le messageOwner sera nul après la désérialisation.

+0

J'ai oublié de mentionner que ces classes sont des classes d'entités – Darlyn

+0

Ensuite, je n'ose pas suggérer quelque chose. Un conseil: pour faciliter la compréhension de votre question, ajoutez le type de texte JSON souhaité. Au moins, je lisais trop vite. –