IT/JPA & Hibernate
[JPA] 엔티티 매핑 어노테이션 정리
Bamdule
2021. 5. 10. 12:59
엔티티 매핑 시 자주 사용되는 어노테이션을 정리한 글입니다.
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 ...
연관 관계 매핑은 따로 정리하겠습니다.