@NoArgsConstructor(access = AccessLevel.PROTECTED)
@NoArgsConstructor(access = AccessLevel.PROTECTED)
1. 기본 생성자 자동 생성
: 해당 클래스에 기본 생성자가 자동으로 추가됩니다. 기본 생성자는 매개변수가 없는 생성자를 의미합니다.
2. 접근 제어자 설정
: 생성된 기본 생성자의 접근 제어자가 protected로 설정됩니다.
인스턴스는 클래스 내부, 같은 패키지, 또는 하위 클래스에서만 생성할 수 있습니다. 이 설정은 특정 클래스가 외부에서 직접 인스턴스화되는 것을 방지하고, 의도된 방식으로만 객체가 생성되도록 제어할 때 유용
@Builder랑 같이 쓰는데
어떤 이유때문에, 어떤 역할을 하는지 등 알아봐야 할듯
Entity의 **Proxy 조회**
엔티티의 연관 관계에서 지연 로딩의 경우에는 실제 엔티티가 아닌 프록시 객체를 통해서 조회
프록시 객체를 사용하기 위해서 JPA 구현체는
, 실제 엔티티의 기본 생성자를 통해 프록시 객체를 생성하는데, 이 때 접근 권한이 private이면 프록시 객체를 생성할 수 없다.
이 때 즉시로딩으로 구현하게 되면, 접근 권한과 상관없이 프록시 객체가 아닌 실제 엔티티를 생성하므로 문제가 생기지 않는다
Proxy와 지연, 즉시 로딩
내가 @NoArgsConstructor (access = AccessLevel.PROTECTED)를 작성했던 이유
그 때 당시에는 Spring은 물론 Java에 대한 개념도 매우 약할 때라 지금도 약하지만레퍼런스의 코드를 가져다 사용하기에 급급했다.당시의 나는 해당 개념에 대한 정확한 이해보다는 기능 구현이
velog.io
https://cobbybb.tistory.com/14
@NoargsConstructor(AccessLevel.PROTECTED) 와 @Builder
@NoargsConstructor(AccessLevel.PROTECTED) 와 @Builder를 함께 사용할때 주의할 점에 대해서 서술합니다. "왜" 안되는지와 "왜" 이렇게 해결 할 수 있는지에 대해 집중하여 서술합니다. 1. 왜 NoargsConstructor(Access
cobbybb.tistory.com