| Annotaion | 설명 |
|---|---|
| @Column | 컬럼 매핑 |
| @Temporal | 날짜 타입 매핑 |
| @Enumerated | enum 타입 매핑 |
| @Lob | BLOB, CLOB 매핑 |
| @Transient | 특정 필드를 컬럼에서 제외 |
| Annotaion | 설명 | 기본값 |
|---|---|---|
| @name | 필드와 매핑할 테이블의 컬럼 이름 | 객체의 필드 이름 |
| @insertable, updatetable | 등록, 변경 여부 | TRUE |
| @nullable(DDL) | null값의 허용 여부를 설정, false일 경우 DDL 생성 시에 not null 제약조건이 붙는다. | |
| @unique(DDL) | @Table의 uniqueConstraints를 쓰는것이 좋다. | |
| @columnDefinition(DDL) | DB 컬럼 정보를 직접 줄 수 있다. | |
| @length(DDL) | 문자 길이 제약 조건, String 타입에만 사용한다. | 255 |
| @precision, scale(DDL) | BigDecimal 타입에서 사용(BigInteger도 가능) precision은 소수점을 포함한 전체 자릿수, scale은 소수의 자릿수다. 정밀한 소수를 다룰 때 사용한다. (double, float 타입에는 적용되지 않는다) | precision = 19, scale = 2 |
Enum 타입을 매핑할 때 사용
EnumType.ORDINAL (default)
enum순서를 데이터베이스에 저장
EnumType.STRING
enum이름을 데이터베이스에 저장
EnumType.ORDINAL은 사용하지말것
순서가 바뀌었을 경우 모든 Enum타입이 변경될 수 있으므로 쓰면 안된다.
LocalDate, LocalDateTime을 사용하면 된다.
매핑하는 필드 타입이 문자면 CLOB, 나머지는 BLOB 매핑