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 |
---|