반응형
RestController 에서 Josn 형식으로 값을 잘 받아오던게 갑자기 안된다.
No serializer found for class org.hibernate
이런 에러가 나온다.
@ManyToOne에서 fetch=FetchType.LAZY 전략을 써서
Hibernate에서 LAZY 로딩으로 인한 JSON Serialization에러가 발생한 것이라고 한다.
그런데 나는 fetch 설정을 한적이 없다..
심지어 @ManyToOne에서 fetch의 default 값은 EAGER 이다
default값
OneToMany: LAZY
ManyToOne: EAGER
ManyToMany: LAZY
OneToOne: EAGER
해결은
해당 Object를 JSON으로 변환하지 않는다면, @JsonIgnore 어노테이션을 nested 객체에 붙인다
@JsonIgnoreProperties({"hibernateLazyInitializer","handler"})
이 방법으로 해결했다..
다른 방법으로는 application.properties 에 spring.jackson.serialization.fail-on-empty-beans=false
이 설정을 추가 하면 된다.
그런데 에러를 보이지 않게만 하는 방식이라 어떤 위험이 있을지는 모르겠다..
반응형
'Spring Framework > 에러' 카테고리의 다른 글
Spring porm.xml 첫줄 에러 (2) | 2019.11.05 |
---|---|
[Spring boot yml 파일에서 값 가져오기] Spring boot load data from yml file (0) | 2019.08.03 |
[Spring JunitTest Hibernate error] org.hibernate.exception.ConstraintViolationException: could not execute statement (0) | 2019.07.24 |
[Spring JPA insertable, updatable] (1) | 2019.07.23 |
[Spring boot + JPA Hibernate 오류] error executing ddl via jdbc statement (0) | 2019.07.22 |