정구리의 우주정복
[Spring] @Entity 사용시 @NoArgsConstructor 를 쓰는 이유 본문
반응형
@Entity 를 쓰려했는데 기본생성자 (@NoArgsConstructor) 가 무조건 있어야한다고 한다
빨간줄 100개뜸.
왜일까
출처 : 내친구 챗지피티
- 프록시 생성:
- JPA는 엔티티 객체를 로딩할 때, 지연 로딩(Lazy Loading)을 위해 프록시 객체를 생성할 수 있습니다. 이 프록시 객체는 기본 생성자를 사용하여 인스턴스를 생성한 후, 필요한 시점에 실제 데이터베이스 조회를 통해 필드를 채웁니다. 기본 생성자가 없으면 이러한 프록시 객체를 생성할 수 없습니다.
- 리플렉션 사용:
- JPA 구현체는 리플렉션(Reflection)을 사용하여 엔티티 객체를 인스턴스화합니다. 리플렉션을 통해 객체를 생성하려면 기본 생성자가 필요합니다. 이는 JPA가 내부적으로 객체를 생성하고 초기화하는 과정에서 필수적입니다.
- 데이터베이스 작업:
- 데이터베이스에서 엔티티를 조회하여 객체를 생성할 때, JPA는 기본 생성자를 사용합니다. 이를 통해 조회된 데이터를 엔티티 필드에 매핑합니다. 만약 기본 생성자가 없다면 JPA는 엔티티를 인스턴스화할 수 없게 됩니다.
- JavaBean 표준:
- JPA는 JavaBean 표준을 따릅니다. JavaBean 표준에서는 기본 생성자를 요구합니다. 기본 생성자가 있어야 엔티티 객체를 쉽게 생성하고 관리할 수 있습니다.
반응형
'JAVA > STUDY' 카테고리의 다른 글
[Spring] Exception, RuntimeException 상속에 대해 (Checked Exception, Unchecked Exception 이란 ?) (4) | 2024.06.10 |
---|---|
[Spring] 컨트롤러에서 엔티티를 반환해도 될까? (2) | 2024.05.31 |
[Spring] 라이브러리 (1) | 2024.02.03 |
[Spring] Autoconfiguration 만들어보기 (3) | 2023.07.09 |
[Spring] Datasource PostgreSql 접속하기 (0) | 2023.07.09 |
Comments