No Serializer found...에러

이름이름·2023년 2월 21일
1

Spring

목록 보기
18/20

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 하려고 해서 발생되는 문제라고 한다

해결 방법

세 가지 해결방법이 제시되어 있었는데

  1. application.yml에 spring.jackson.serialization.fail-on-empty-beans : false 추가

  2. 오류가 발생한 엔티티의 LAZY를 EAGER로 변경

  3. 오류가 발생한 컬럼에 @JsonIgnore

1번을 사용하여 해결하였다

  jackson:  
    serialization:
      fail-on-empty-beans : false

profile
공부 정리

0개의 댓글