Backend/JPA

No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS)

findmypiece 2022. 2. 14. 21:18
728x90

JPA를 사용하다가 위와 같은 에러가 발생하는 경우가 있다. 의외로 서칭하니 답은 빨리나왔는데 설명이 장황하여 간단하게 원인만 정리한다.

 

Entity 에 포함되는 속성 중 FetchType.LAZY 로 명시한 속성이 아직 Fetch 전인데 해당 Entity 를 json 직렬화 하려 할 때 발생한다. 좀 더 자세히 이야기 하면 Entity의 해당 속성이 아닌 프록시로 감싸져있는 hibernateLazyInitializer 를 직렬화 하려 하기 때문에 발생한다.

 

다르게 말하면 FetchType.LAZY 로 명시한 속성은 반드시 Fetch 가 완료된 뒤에 json 직렬화를 해야 한다. 만약 그게 싫다면 아래와 같이 해당 속성을 아예 직렬화에서 제외시켜야 한다.

 

https://ahndding.tistory.com/24
728x90

'Backend > JPA' 카테고리의 다른 글

[JPA] Entity 에 스키마 지정하기  (0) 2022.03.15
[JPA] querydsl 정리  (0) 2022.01.03
[JPA] 코틀린+JPA  (0) 2021.12.24
[JPA] 연관관계 매핑  (0) 2021.12.17
[JPA] 대량 insert, mysql insert all  (0) 2021.12.16