필드와 칼럼 매핑
요구사항
회원은 일반 회원과 관리자로 구분해야한다. Java : enum 타입 DB : @Enumerated
회원가입일과 수정일이 있어야한다. Java : Date 타입 DB : @Temporal
회원을 설명할 수 있는 필드가 있어야한다. 이 필드는길이 제한이 없다. Java : String 타입 DB : @Lob(String인 경우는 clob)
애노테이션 | 설명 |
@Column | 컬럼 매핑 |
@Temporal | 날짜 타입 매핑 |
@Enumerated | enum 타입 매핑 |
@Lob | BLOB, CLOB 매핑 |
@Transient | 특정 필드를 칼럼에 매핑하지 않을 때(매핑 무시) 주로 메모리상에서만 임시로 어떤 값을 보관하고 싶을 때 ex)@Transient private int tmp; |
@Column
nullable = false : not null 제약 조건(자주 쓰임) unique = true : 유일무이한 이름이 할당되는데 랜덤으로 이름이 정해지므로 실제 사용하기 어렵다. precision, scale(DDL) : 아주 큰 숫자(BigDecimal 타입 또는 BigInteger)나 소숫점에 사용한다.
2. @Enumerated
ORDINAL(기본값) : 사용❌
STRING
3. @Temporal
LocalDate 타입 : 년,월. DB에서 date타입
LocalDateTime 타입 : 년,월,일. DB에서 timestamp 타입 ex) TemporalType.DATE : 날짜. DB의 date 타입과 매핑. 2013-10-11 TemporalType.TIME : 시간. DB time 타입과 매핑. 11:11:11 TemeporalType.TIMESTAMP : 날짜&시간. DB Timestamp 타입과 매핑. 2013-10-11 11:11:11
4. @Lob
VarChar를 넘어서 더 큰 것을 쓰고 싶을 때. @Lob에는 지정할 수 있는 속성이 없다. 매핑하는 필드 타입이 문자면 CLOB 매핑, 나머지는 BLOB 매핑
CLOB: String, char[], java.sql.CLOB
BLOB: byte[], java.sql. BLOB
Last updated