강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

tmdgk4902님의 프로필 이미지
tmdgk4902

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

실전 예제 1 - 요구사항 분석과 기본 매핑

@Entity와 @Table 질문드립니다

작성

·

254

0

지금 강의 내용과는 조금 다르긴 합니다만 이해가 잘 안가서요

@Entity를 붙이면 해당 객체는 JPA가 관리하는게 되고,

@Table을 붙이면 해당 객체의 필드를 바탕으로 db에 자동으로 테이블이 만들어지는 건가요? 그리고 만들어진 테이블이 엔티티와 매핑되는게 맞을까요?

@Table의 name속성을 지정하지 않으면 테이블이 만들어질 때 이름이 엔티와 똑같이 되는거고, 지정해주면 해당 이름으로 테이블이 만들어져서 엔티티와 매핑이 되는건지 궁금합니다 

퀴즈

JPA에서 클래스를 엔티티로 매핑하기 위해 `@Entity` 어노테이션을 사용할 때, 해당 클래스가 기본적으로 갖춰야 할 중요한 조건은 무엇일까요?

모든 필드가 public이어야 한다

final 클래스여야 한다

public 또는 protected 기본 생성자가 있어야 한다

static 메소드를 하나 이상 포함해야 한다

답변 1

0

안녕하세요, tmdgk4902 님. 공식 서포터즈 codesweaver 입니다.
.
@Entity 어노테이션을 붙이고 ddl-auto 설정이 create-drop 등으로 설정되어있다면 어플리케이션 실행 시 테이블을 생성합니다. 테이블의 컬럼은 필드를 기준으로 생성합니다.

.

@Table 어노테이션은 테이블을 생성할 때 제약조건을 걸거나 (uniqueConstraint) 

매핑할 테이블의 이름을 지정하는 등 (name)의 옵션을 추가 할 수 있습니다.

말씀하신것처럼 테이블 이름을 별도로 지정하지 않을 경우 엔티티 클래스의 이름을 기반으로 테이블을 생성합니다.
.
감사합니다.

tmdgk4902님의 프로필 이미지
tmdgk4902

작성한 질문수

질문하기