본문 바로가기

IT/JPA & Hibernate

[JPA] 엔티티 매핑 어노테이션 정리

엔티티 매핑 시 자주 사용되는 어노테이션을 정리한 글입니다.

 

1. @Entity

@Entity 어노테이션이 선언된 클래스를 DB 테이블과 매핑합니다.

 

2. @Column

필드 속성을 지정할 때 사용합니다.
이름 설명 기본 값
name 필드 명을 지정 객체의 필드 이름
insertable 등록 가능 여부 true
updatable 수정 가능 여부 true
nullable DDL 생성 시 설정 값에 따라 null 가능여부를 설정 true
unique DDL 생성 시 간단하게 한 컬럼에 유니크 제약조건을 설정 false
columnDefinition 테이블 컬럼 속성을 직접 설정
ex : varchar(50) not null default 'none'
 
length 문자 길이 제약 조건을 설정 255
precision, scale BigDecimal, BigInteger 타입에서 사용한다. precision은 소수점을 포함한 전체 자릿수, scale은 소수점의 자릿수 0,0

 

3. @Temporal

날짜 타입 매핑할 때 사용합니다. (LocalDate, LocalDateTime 사용 시 생략 가능)

 

4. @Enumerated

자바 enum 타입을 매핑할 때 사용합니다.
이름 설명 기본값
value EnumType.ORDINAL
enum 순서를 테이블에 저장

EnumType.String
enum 이름을 테이블에 저장
EnumType.ORDINAL

 

5. @Lob

데이터베이스 BLOB, CLOB 타입과 매핑합니다.

 

6. @Transient

해당 필드를 매핑하지 않습니다. 테이블과 연관 없는 필드를 지정할때 사용합니다.

 

7. @OneToMany, @ManyToOne ... 

연관 관계 매핑은 따로 정리하겠습니다.