이는 Spring JPA 양방향 매핑을 하고나면 자주 생기는 에러이다.
LAZY 로딩
은 데이터베이스에서 Object를 가져올 때 맵핑 되어있는 다른 Object를 가져오지 않는 것이다.(혹은 나중에 필요할 때 가져오는 방법, 프록시 객체
로.)
즉, Jackson은 매핑된 객체를 serialize를 하려고 한다. 하지만 Lazy 로딩에선 찾을 때 정상적인 Object가 아니기에 JavaassistLazyInitializer 때문에 실패하게 된다.
java.lang.IllegalStateException: Cannot call sendError() after the response has been committed
1) application 설정
spring:
jackson:
serialization:
fail-on-empty-beans: false
2) @JsonIgnore
ManyToOne 컬럼에
매핑된 객체에 @Jsonignore
@JsonIgnore
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "study_group_id")
private StudyGroup studyGroup;
나는 개인적으로 application 설정으로 해결이 되었다.
https://thalals.tistory.com/227 [힘차게, 열심히 공대생]