-
이거 왜 안됨..? (2) 해결오늘/Error 2024. 11. 18. 18:47
could not initialize proxy [com.spartaordersystem.domains.UserAddress.entity.UserAddress#059b97ba-1884-4694-984e-6aa523add7e0] - no Session
라는 에러가 터졌고
그래서 categoryRepository.save(category); 이걸할 수 없다고 한다.
Caused by: org.hibernate.LazyInitializationException: could not initialize proxy [com.spartaordersystem.domains.UserAddress.entity.UserAddress#059b97ba-1884-4694-984e-6aa523add7e0] - no Session
at com.spartaordersystem.domains.user.entity.User.toString(User.java:12) ~[main/:na]
여러 방법을 시도한 끝에 찾은 원인은
User엔티티의 toString 애너테이션 때문이었다.
@ToString (exclude = "userAddress") @Getter @Entity @Table(name = "p_users", indexes = @Index(name = "idx_nickname", columnList = "nickname")) @NoArgsConstructor(access = AccessLevel.PROTECTED) @AllArgsConstructor public class User extends BaseAudit {
- toString() 메서드 호출로 Lazy 필드 접근:
- User 객체의 toString 메서드가 UserAddress와 같은 Lazy 로딩된 필드에 접근하려고 시도하면서 발생.
- 디버깅 중 toString()이 호출되거나 로그에 User 객체를 출력하려고 할 때 종종 발생합니다.
저 애너테이션을 사용함으로써 toString 메서드가 UserAddress와 같은 Lazy 로딩된 필드에 접근하려할때 발생하는 에러였다.
toString이 호출되거나, 로그에 User 객체를 출력하려할때 에러가 발생한 것이다.
@ToString(exclude = "userAddress")
이 애너테이션에서 관계를 맺은 다른 엔티티는 접근하지 못하도록 제외해주면서 에러를 해결하였다.
'오늘 > Error' 카테고리의 다른 글
매우 화나는 깃 - 하위 모듈 push rejected 해결? (0) 2024.11.29 이거 왜 안됨..? (0) 2024.11.15 스프링 SQL 설정 중 발생한 com.mysql.cj.jdbc.Driver 에러 (0) 2023.11.07 [문제해결] 새 데이터를 받아오지 않는 H2 (0) 2023.10.31 [Error] 인텔리제이 또 너야? (1) 2023.10.13 - toString() 메서드 호출로 Lazy 필드 접근: