프로젝트를 진행하다가 순환참조 문제가 발생하였다.
에러 메시지는 다음과 같다.
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를 이용한다면 위와 같은 문제가 없겠지만 경우에 따라 필요한 옵션이 있을 수 있어 찾아보았다.
'IT' 카테고리의 다른 글
Java Netty 에코 서버-클라이언트 구현하기 (1) | 2020.12.09 |
---|---|
Netty의 개념과 아키텍처 (0) | 2020.12.09 |
[ERROR] Error running '{ClassName}': Command line is too long. Shorten command line for {ClassName} IntelliJ 실행 에러 (0) | 2020.09.13 |
[ERROR] Can not issue data manipulation statements with executeQuery(). @Modifying 사용하기 (0) | 2020.09.08 |
[Oracle] Windows 10 Oracle SQL Developer 설치/다운로드 방법 (1) | 2020.03.29 |