매핑 어노테이션 정리
어노테이션 | 설명 |
@Column | 컬럼 매핑 (옵션 줄거 아니면 안써도 된다) |
@Enumerated | enum 타입 매핑 |
@Tempora | 날짜 타입 매핑 |
@Lob (속성없음) | BLOB, CLOB(변수가 String일 경우) 매핑 |
@Transient (속성없음) | 필드를 컬럼에 매핑하지 않음 |
@Column 속성
속성 | 설명 | 기본값 |
name | 필드와 매핑할 테이블의 컬럼 이름 | 객체의 필드 이름 |
insertable, updatable |
등록 가능, 변경 가능 여부 (기본이 true기때문에 updatablee=false정도만 추가) |
TRUE |
nullable (DDL) | null 값의 허용 여부를 설정한다. false로 설정하면 DDL 생성 시에 not null 제약조건이 붙는다 |
TRUE |
unique (DDL) | @Table의 uniqueConstraints와 같지만 한 컬럼에 간단히 유니크 제 약조건을 걸 때 사용한다 (복합도 안되고, 유니크키가 랜덤이라 실무에서 잘안씀 유니크 설정은 @table의 속성에서 uniqueConstraints 사용 ) |
TRUE |
columnDefinition (DDL) | 데이터베이스 컬럼 정보를 직접 줄 수 있다. ex) varchar(100) default ‘EMPTY' |
필드의 자바 타입과 방언 정보를 사용해 |
length(DDL) | 문자 길이 제약조건, String 타입에만 사용한다. | 255 |
precision, scale(DDL) |
BigDecimal 타입에서 사용한다(BigInteger도 사용할 수 있다). precision은 소수점을 포함한 전체 자릿수를, scale은 소수의 자릿수 다. 참고로 double, float 타입에는 적용되지 않는다. 아주 큰 숫자나 정 밀한 소수를 다루어야 할 때만 사용한다. |
precision=19, scale=2 |
@Enumerated 속성
속성 | 설명 | 기본값 |
value | • EnumType.ORDINAL: enum 순서를 데이터베이스에 저장 • EnumType.STRING: enum 이름을 데이터베이스에 저장 |
EnumType.ORDINAL |
ORDINAL 사용금지!
@Temporal 속성
날짜 타입(java.util.Date, java.util.Calendar)을 매핑할 때 사용
※ 참고: LocalDate, LocalDateTime을 사용할 때는 생략 가능
속성 | 설명 |
value | • TemporalType.DATE: 날짜, 데이터베이스 date 타입과 매핑 (예: 2013–10–11) • TemporalType.TIME: 시간, 데이터베이스 time 타입과 매핑 (예: 11:11:11) • TemporalType.TIMESTAMP: 날짜와 시간, 데이터베이스 timestamp 타입과 매핑 (예: 2013–10–11 11:11:11) |
※ 출처 - 인프런 김영한 JPA
'JPA' 카테고리의 다른 글
JPA - 연관관계 매핑 기초(1) : 연관관계가 필요한 이유, 단방향 연관관계 (0) | 2022.04.09 |
---|---|
JPA - 기본 키 매핑 (0) | 2022.04.09 |
JPA - 객체와 테이블 매핑 feat. 데이터베이스 스키마 자동생성 (0) | 2022.04.08 |
JPA - 준영속, 병합 (0) | 2022.04.08 |
JPA - 플러시 (0) | 2022.04.08 |
댓글