필드와 컬럼 매핑

tyghu77·2023년 7월 11일
0

매핑 어노테이션 정리

Annotaion설명
@Column컬럼 매핑
@Temporal날짜 타입 매핑
@Enumeratedenum 타입 매핑
@LobBLOB, CLOB 매핑
@Transient특정 필드를 컬럼에서 제외

@Column

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

@Enumerated

Enum 타입을 매핑할 때 사용
EnumType.ORDINAL (default)
enum순서를 데이터베이스에 저장
EnumType.STRING
enum이름을 데이터베이스에 저장

EnumType.ORDINAL은 사용하지말것
순서가 바뀌었을 경우 모든 Enum타입이 변경될 수 있으므로 쓰면 안된다.

@Temporal

LocalDate, LocalDateTime을 사용하면 된다.

@Lob

매핑하는 필드 타입이 문자면 CLOB, 나머지는 BLOB 매핑

profile
배운것을 기록하자

0개의 댓글