엔티티와 매핑할 테이블을 지정한다.
| 속성 | 기능 | 기본값 |
|---|---|---|
| name | 매핑할 테이블 이름 | 엔티티 이름을 사용 |
| catalog | 데이터베이스 catalog 매핑 | |
| schema | 데이터베이스 SCHEMA 매핑 | |
| uniqueConstraints(DDL) | DDL 생성 시에 유니크 제약 조건 생성 |
@Entity
@Table(name = "USER")
public class Member {
}
컬럼 매핑
개발자들이 엔티티를 보고 개발할 수 있도록 컬럼의 제약 조건을 지정해주는 것이 좋다.
| 속성 | 설명 | 기본값 |
|---|---|---|
| name | 필드와 매핑 할 테이블 컬럼 이름 | 객체의 필드 이름 |
| insertable, updatable | 등록, 변경 가능 여부 | TRUE |
| (FALSE : 불가능) | ||
| nullable(DDL) | null 값의 허용 여부를 설정한다. | |
| false로 설정하면 DDL 생성 시에 not null 제약 조건이 붙는다. | ||
| unique(DDL) | @Table의 uniqueConstraints와 같지만 | |
| 한 컬럼에 간단히 유니크 제약 조건을 걸 때 사용한다. | ||
| (제약 조건의 이름을 무작위로 설정함으로 잘 사용 안함) | ||
| length(DDL) | 문자 길이 제약 조건, String 타입에만 사용한다. | varchar(255) |
| precision, scale(DDL) | BigDecimal 타입에서 사용한다. (BigInteger 도 사용 가능) | |
| precision (소수점을 포함한 전체 자릿수) | ||
| scale (소수의 자릿수) | ||
| 아주 큰 숫자나 정밀한 소수를 다루어야 할 때만 사용한다. | ||
| (double, float 타입에는 적용되지 않는다.) | precision=19, | |
| scale=2 |
날짜 타입 매핑
날짜 타입(java.util.Date, java.util.Calendar)을 매핑할 때 사용
LocalDate, LocalTime, LocalDateTime을 사용할 때는 어노테이션 생략 가능(최신 하이버네이트 지원)
| 속성 | 설명 | 기본값 |
|---|---|---|
| value | TemporalType.DATE : 날짜, 데이터베이스 date 타입과 매핑 | |
| (예: 2013–10–11) | ||
| TemporalType.TIME : 시간, 데이터베이스 time 타입과 매핑 | ||
| (예: 11:11:11) | ||
| TemporalType.TIMESTAMP : 날짜와 시간, 데이터베이스 timestamp 타입과 매핑 | ||
| (예: 2013–10–11 11:11:11) |
Enum 타입 매핑
무조건 EnumType.STRING 을 사용해야 한다.
| 속성 | 설명 | 기본값 |
|---|---|---|
| value | EnumType.ORDINAL: enum 순서를 데이터베이스에 저장EnumType.STRING: enum 이름을 데이터베이스에 저장 | EnumType.ORDINAL |