본문 바로가기

코딩/spring boot + jpa

No serializer found for class error

jpa에서 post을 조회할 때 user도 같이 조회하는데 

 

post class 안에 user가 

 

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "msrl")
private User user; // 게시글 - 회원의 관계 - N:1

 

이렇게 되있을 때 오류가 남

 

 

user를 lazy 에서 EAGER로 수정하면 에러는 안남

 

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

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

위에는 테스트할 때 유저가 비어있는게 있었는데 그걸 시리얼라이저 할때 에러가 나는듯하다.

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

1. application 파일에 spring.jackson.serialization.fail-on-empty-beans=false 설정해주기 -> 이건 안됨( 이유는 모르겟음)

2. 오류가 나는 엔티티의 LAZY 설정을 EAGER로 바꿔주기 -> 이거로 해결 

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

 

 

'코딩 > spring boot + jpa' 카테고리의 다른 글

QueryDsl 구조 정리  (0) 2020.07.19