미소를뿌리는감자의 코딩
[Spring] @NoArgsConstructor - entity w. 기본 생성자 본문
728x90
@NoArgsConstructor
명시적으로 생성자를 선언하지 않으면 기본 생성자를 자동으로 추가한다.
하지만 하나 이상의 생성자를 명시적으로 선언한 경우 기본 생성자는 자동으로 생성되지 않음. 이때, 해당 annotation 사용 -> 기본 생성자 명시적으로 생성해준다.
+ JPA를 사용할 때, entity class는 기본 생성자를 가져야 함.
*JPA: ORM의 일종으로 DB를 객체 지향적으로 사용할 수 있게 해줌.
*entity class: DB의 table에 해당하는 data. table의 column에 해당하는 데이터들을 가지고 있음.
JPA의 entity가 기본 생성자를 가져야 하는 이유:
이에 대해 알아보기 위해 우선 Reflection에 대해서 먼저 이해해 보자.
Reflection: 프로그램이 실행 중에 자신의 구조를 분석하고 조작할 수 있는 자바 API
런타임에 클래스의 메서트, 필드, 생성자 등의 정보를 조회하거나 수정할 수 있다.
JPA 구현체는 reflection을 사용하여 entity class의 instance(DB table의 row 행에 해당)를 생성하는데,
이 과정에서 기본 생성자가 필요.
즉, @NoArgsConstructor가 필요.
table의 각각의 row를 기본생성자를 이용해서 만들기 때문에,
table의 내용을 담고 있는 entity에 기본생성자 선언이 필요.
728x90
'강의수강 > [Spring]' 카테고리의 다른 글
[Spring] HTTP Method: GET, PUT, POST, DELETE, PATH (REST API) (0) | 2024.03.09 |
---|---|
[Spring] intellij 에서 모든 파일이 .java로 바뀌어 인식이 안될 때 (Java file outside of source root intelliJ) (1) | 2024.03.08 |
[Spring] Entity & JPA & ORM와 IoC & DI (0) | 2024.03.04 |
[Spring] compiler warning: local variable is redundant (0) | 2024.03.02 |
[Spring] HTTP 데이터를 객체로 바꾸는 법 (0) | 2024.03.01 |