728x90
@Column
- 필드와 컬럼 매핑
- 속성
- name : 필드와 매핑할 테이블의 컬럼 이름 / 기본값 : 객체 필드의 이름
- insertable, updatable : 등록, 변경 가능 여부 / 기본값 : TRUE
- nullable(DDL) : null 값의 허용 여부를 설정한다. false로 설정하면 DDL 생성 시에 not null 제약 조건이 붙음.
- unique(DDL) : @Table의 uniqueConstraints와 같지만 한 컬럼에 간단히 유니크 제약조건을 걸 때 사용한다.
- columnDefinition(DDL) : 데이터베이스 컬럼 정보를 직접 줄 수 있다. ex) "varchar(100) default 'EMPTY'"
- length(DDL) : 문자 길이 제약조건, String 타입에만 사용함
@Temporal
- 날짜 타입(java.util.Date, java.util.Calendar)을 매핑할 때 사용
- 속성
- value
- TemporalType.DATE : 날짜, 데이터베이스 date 타입과 매핑
- TemporalType.TIME : 시간, 데이터베이스 time 타입과 매핑
- TemporalType.TIMESTAMP : 날짜와 시간, 데이터베이스 timestamp 타입과 매핑
- value
- LocalDate, LocalDateTime을 사용하면 생략 가능(최신 하이버네이트 지원)하므로 이제 쓸 일이 거의 없다.
@Enumerated
- enum 타입을 매핑할 때 사용
- 속성
- value
- EnumType.ORDINAL : enum 순서를 데이터베이스에 저장(기본값)
- EnumType.STRING : enum 이름을 데이터베이스에 저장(STRING으로 써야함)
- ORDINAL로 하게되면 enum 추가할 때 번호가 개판될 수 있음
- ex) 기존에 1 저장 이후 새롭게 1로 저장되면 DB에 1 두개
- value
@Lob
- 데이터베이스 BLOB, CLOB 타입과 매핑
- 매핑하는 필드 타입이 문자면 CLOB 매핑, 나머지는 BLOB 매핑
@Transient
- 특정 필드를 컬럼에서 제외
- 데이터베이스에 저장 x, 조회 x
- 주로 메모리 상에서만 임시로 어떤 값을 보관하고 싶을 때 사용
참고
김영한 - 자바 ORM 표준 JPA 프로그래밍
728x90
'[JAVA] > JPA' 카테고리의 다른 글
JPA - 연관관계 매핑 (0) | 2022.11.27 |
---|---|
JPA - 기본 키 매핑 (0) | 2022.11.27 |
JPA - 객체와 테이블 매핑 (0) | 2022.11.27 |
JPA - flush(플러시) (1) | 2022.11.26 |
JPA - 영속성 컨텍스트 (1) | 2022.11.26 |