엔티티 매핑 시 자주 사용되는 어노테이션을 정리한 글입니다.
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 ...
연관 관계 매핑은 따로 정리하겠습니다.
'IT > JPA & Hibernate' 카테고리의 다른 글
[Hibernate] Spring Boot Querydsl 설정하기 (2) | 2021.06.29 |
---|---|
[JPA] 프록시와 지연로딩 (0) | 2021.05.18 |
[JPA] 기본키 자동 생성 전략(Primary Key) (0) | 2021.05.10 |
[JPA] @MappedSuperclass 사용법 (0) | 2021.05.08 |
[JPA] 상속 관계 매핑 (0) | 2021.05.08 |