본문 바로가기
개발/Spring

[JPA]No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no properties discovered to create BeanSerializer

by 상용최 2019. 12. 10.
반응형

댓글과 자식들을 담을 객체
User 엔티티

 

Board 엔티티

 

댓글 엔티티

 

대댓글 목록을 구해서 Return 해주는 메소드

 

로직상으로는 요청을 받고 값을 가공해서 Map객체에 넣어준 후 Return만 하면 끝이라서 전혀 문제가 없어보였다.

허나 돌려보면 No SNo serializer found for class 이라는 오류가 계속 났다.

이유는 ManyToOne의 옵션의 Lazy여서 나는것같다.

   * LAZY옵션은 필요할때 조회를 해오는 옵션이다.

필요가 없으면 조회를 안해서 비어있는 객체를 serializer 하려고 해서 발생되는 문제인것 같다.

해결방법은 3가지가 있다.

 

1. application 파일에 spring.jackson.serialization.fail-on-empty-beans=false 설정해주기

2. 오류가 나는 엔티티의 LAZY 설정을 EAGER로 바꿔주기

3. 오류가 나는 컬럼에 @JsonIgnore를 설정해주기

 

ReplyList 객체를 이런식으로 바꾸어준다.

 

이런식으로 바꾸어주면 정상적으로 작동하는것을 볼 수 있다.

반응형

댓글