백엔드/JPA
JPA 4장 (Entity에 대하여)
한뜽규
2023. 3. 16. 12:27
728x90
- Entity 기본 annotation
@Entity: 엔티티 클래스에 설정, 필수!
@Table: mapping 테이블을 지정
@Id: 식별자 속성에 설정, 필수!
@Column: 매핑할 컬럼명 지정, 지정하지 않으면 필드명과 프로퍼티명을 사용
@Enumerated: enum 타입 매핑할 때 설정
- Table annotation
annotation을 생략하면 클래스의 이름과 동일한 이름에 mapping
속성으로는
- name: 테이블 이름
- catalog: 카탈로그 이름
- Enumerated
EnumType.STRING: enum 타입 값 이름을 저장
EnumType.ORDINAL: enum 타입의 값의 순서를 저장
Mapping이 된 설정의 예를 보도록 하자
//mapping을 합니다.
@Entity
//user 테이블에 mapping 합니다.
@Table(name = "user")
public class User {
//식별자에 mapping 합니다.
@Id
//변수명에 mapping 합니다.
private String email;
private String name;
//create_date에 mapping 합니다.
@Column(name = "create_date")
private LocalDateTime date;
//열거타입 이름을 값으로 저장
//grade에 mapping
@Enumerated(EnumType.STRING)
private Grade grade;
protected User(){}
}
- Entity 클래스의 제약 조건
1. 반드시 @Entity를 작성해야함
2. 반드시 @Id를 작성해야함
3. 인자 없는 기본 생성자 필요(해당 생성자는 public이나 protected로 작성이 되어야 함)
4. 최상위 클래스여야 함.