SpringBoot

[SpringBoot] Lazy 칼람 JSON 반환 오류 해결하기 (No serializer fond for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no...)

쩡선영 2024. 3. 27. 02:37

 

🤦‍♀️배경

SpringBoot로 Join시킨 FK를 통해 get 요청을 받아서, 데이터를 넘겨주는 api를 작성하고 있는데

No serializer fond for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no...

위와 같은 에러가 발생했다.

 

✅ 해결방법 1

먼저 내가 해본 것은 application.properties에 spring.jpa.properties.hibernate.format_sql=false를 추가해주었다.

spring.jackson.serialization.fail-on-empty-beans=fasle

 

그러니 단순히 에러는 해결되었지만 

 

 

이렇게 불필요한 데이터들이 나오게 되었으며, hibernateLazyInitializer 라는 만든적이 없는 데이터도 나오게 되었다

 

 

그리하여 다른 방법이 없을까 더 검색을 해본 결과

 

 

✅ 해결방법 2

    @JsonIgnore
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "user_id")
    private UserEntity user;
    
    
    @JsonIgnore
    @OneToMany(mappedBy = "user", cascade = {CascadeType.REFRESH, CascadeType.DETACH, CascadeType.MERGE, CascadeType.PERSIST}, orphanRemoval = true)
    private List<IdeaEntity> ideaEntityList;

 

이렇게 Join 해줄 칼람 위에 @JsonIgnore 어노테이션을 추가해주었더니 해결이 되었다.

 

'SpringBoot' 카테고리의 다른 글

객체지향 설계의 5가지 원칙 (Solid 원칙)  (2) 2024.02.20