IT

[ERROR] JSON 순환 참조 문제 해결하기

코딩하는 너구리 2020. 9. 19. 06:49
반응형

 

프로젝트를 진행하다가 순환참조 문제가 발생하였다.

에러 메시지는 다음과 같다.

 Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: Infinite recursion (StackOverflowError); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Infinite recursion (StackOverflowError) (through reference chain: com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"]->org.hibernate.collection.internal.PersistentBag[0]->com.mango.harugomin.domain.entity.UserHashtag["user"]->com.mango.harugomin.domain.entity.User["userHashtags"])] with root cause

 

에러 메시지의 길이가 긴 이유는 순환참조가 발생하였기 때문이다.

 

Hashtag 기능을 구현하려고 User와 HashTag 테이블이 있고, 양방향 매핑을 풀어주기 위해

User, UserHashtag, HashTag 세 테이블을 이용하였다.

 

 

이 상황에서 가운데에 위치한 User_Tag 테이블을 관찰해보자.

 

User에는 user_hashtag 이름으로 User_Tag 테이블을 담고 있고,

 반대로 User_Tag 테이블에서는 user_id로 User를 담고 있었다.

 

Cycle과 같이 서로를 계속 참조해서 발생하는 순환참조 문제가 발생한 것이다.

 

 

해결방법

 이러한 문제를 해결하는 방법으로 @JsonIgnore를 사용하는 방법이 있고 @JsonManagedReference@JsonBackReference를 사용하는 방법이 있다. 표면적으로 두 방법 모두 순환참조를 방어하는 형태이지만 본질적으로 약간의 차이가 있다. @JsonIgnore의 경우는 실제로 property에 null을 할당하는 방식이고 @JsonManagedReference@JsonBackReference는 본질적으로 순환참조를 방어하기 위한 Annotation이다.

 

 정리를 하자면 json serialize 과정에서 null로 세팅하고자 하면 @JsonIgnore 사용하면 되고, 순환참조에 대한 문제를 해결하고자 한다면 부모 클래스측@JsonManagedReference를, 자식측@JsonBackReference를 Annotation에 추가해주면 된다.

 

기본적으로 DTO와 같이 별도의 전달 객체를 활용하여 Mapper를 이용한다면 위와 같은 문제가 없겠지만 경우에 따라 필요한 옵션이 있을 수 있어 찾아보았다.

 

 

 

 

참조 : binarycube.tistory.com/1

반응형