No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no properties discovered to create BeanSerializer
개발하던 중 위와 같은 에러가 떴다.
위와 같은 엔티티에서 tasknotice와 tag를 join해서 결과를 가져오려했다.
그래서 Repository에 위와 같이 메서드를 만들고
Controller에서 사용했는데
"No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no properties discovered to create BeanSerializer" 와 같은 에러가 났다
검색을 해보니 이유는 ManyToOne의 옵션의 Lazy여서 난다고 한다
LAZY옵션은 필요할때 조회를 해오는 옵션인데
필요가 없으면 조회를 안해서 비어있는 객체를 serializer 하려고 해서 발생되는 문제라고 한다
세 가지 해결방법이 제시되어 있었는데
application.yml에 spring.jackson.serialization.fail-on-empty-beans : false 추가
오류가 발생한 엔티티의 LAZY를 EAGER로 변경
오류가 발생한 컬럼에 @JsonIgnore
1번을 사용하여 해결하였다
jackson: serialization: fail-on-empty-beans : false