내 엔티티에서 양방향 다 대다 관계가 있습니다. 아래의 예를 참조하십시오 :`양방향 다 대다 관계의 순환 참조
"java.lang.IllegalArgumentException가이 :/다시 관리 처리 할 수없는 내가 JSON이 직렬화 할 때
public class Collaboration { @JsonManagedReference("COLLABORATION_TAG") private Set<Tag> tags; } public class Tag { @JsonBackReference("COLLABORATION_TAG") private Set<Collaboration> collaborations; }
을, 나는 다음과 같은 예외를 받고 있어요 참조 'COLLABORATION_TAG'. 관리되는 형식 (foo.Collaboration)와 호환되지 다시 참조 유형 (java.util.Set을) 사실
, 나는 javadoc에 명시 적으로 언급하기 때문에이 말이 알고 콜렉션에서 @JsonBackReference를 사용할 수 없다는 것을 의미합니다. 제 질문은이 문제를 어떻게 해결해야합니까? 내가 한 일은 부모 측에서 @JsonManagedReference 주석을 제거하고 자식 측에 @JsonIgnore를 추가 한 것입니다. 누군가이 접근법의 부작용이 무엇인지 말해 줄 수 있습니까? 다른 제안이 있습니까?
당신은 잭슨 2.0을 사용할 수 있습니다에
으로 잭슨이 라이브러리에 제공됩니다. http://stackoverflow.com/questions/10065002/jackson-serialization-of-entities-with-birectional-relationships-avoiding-cyc을 참조하십시오. –
'JsonIdentityInfo' 주석은 훌륭합니다. 감사합니다. @EugeneRetunsky! 나는이 페이지가 어떻게 작동 하는지를 배우는 데 매우 유용하다는 것을 알았다 : http://wiki.fasterxml.com/JacksonFeatureObjectIdentity –
나는'JsonManagedReference'와'JsonBackReference'를 시도했다. 아무 것도 작동하지 않는다. 그러나 @ SimonAndréForsberg의 링크는 매우 흥미롭고 잘 작동합니다. – yas