엔티티 내 필드에는 아래 매핑 어노테이션을 이용해 매핑 컬럼에 대한 특성을 지정할 수 있다.
- @Column
- @Temporal
- @Enumerated
- @Lob
- @Transient
@Column
- name
- @Column(name = "컬럼명")
- 필드와 매핑할 테이블의 컬럼명을 지정한다.
- 기본값 : 필드명
- insertable, updatable
- 필드 값 수정 시 DB에 반영할 지 여부
- @Column(updatable = false) 지정 시 해당 필드의 값이 변경되도 UPDATE문에 포함되지 않음
- 기본값 : true
- nullable
- @Column(nullable = false)
- 기본값 : true
- DDL 옵션
- null 허용 여부를 지정한다.
- unique
- @Column(unique = true)
- 기본값 : false
- DDL 옵션
- 해당 방법으로 Unique 지정 시 제약조건명이 랜덤생성되어 잘 사용하지 않음
- columnDefinition
- @Column(columnDefinition = "varchar(100) default 'EMPTY'")
- DDL 옵션
- 컬럼 정보를 직접 지정할 수 있다.
- length
- @Column(length = 10)
- 기본값 : 255
- DDL 옵션
- 문자 길이 제약조건. String 타입에만 사용한다.
- precision, scale
- @Column(precision = 0)
- BigDecimal 타입에서 사용한다.
- precision : 소숫점을 포함한 전체 자리수
- scale : 소수의 자리수
@Enumerated
- value
- EnumTypes.ORDINAL
- enum의 순서를 저장한다.
- enum의 순서는 변경될 여지가 굉장히 많기 때문에 사용하지 말자. - EnumTypes.STRING
- enum의 이름을 저장한다.
- EnumTypes.ORDINAL
@Temporal
- value
- TemporalType.DATE
- 날짜
- 데이터베이스 date 타입과 매핑한다. - TemporalType.TIME
- 시간
- 데이터베이스 time 타입과 매핑한다. - TemporalType.TIMESTAMP
- 날짜 + 시간
- 데이터베이스 timestamp 타입과 매핑한다.
- TemporalType.DATE
@Lob
데이터베이스 BLOB, CLOB 타입과 매핑한다. 매핑하는 필드 타입이 문자일 경우 CLOB, 나머지는 BLOB으로 매핑한다.
@Transient
필드 매핑을 하지 않을 때 사용한다. 엔티티의 해당 필드는 DB 컬럼과 매핑되지 않으므로 저장/조회되지 않는다.
주로 메모리상에서 값을 임시로 보관하려할 때 사용한다.
출처 :: 인프런 강의(자바 ORM 표준 JPA 프로그래밍 - 기본편)
반응형
'🌱 SPRING > JPA' 카테고리의 다른 글
[JPA] 연관관계 매핑 기초 (0) | 2020.07.04 |
---|---|
[JPA] 기본키 매핑 어노테이션 (0) | 2020.07.04 |
[JPA] 스키마 자동 생성 (0) | 2020.06.13 |
[JPA] 엔티티 (0) | 2020.06.13 |
[JPA] 플러시(flush) (0) | 2020.06.13 |