728x90
필드에 컬럼 매핑을 통해 DB 에 제약조건을 줄 수 있다.
* JPA 의 실행 로직에는 영향을 주지 않으며, DDL을 자동생성 할 때만 사용한다
예로 들어보자
@Entity
public class Member {
@Id
private Long id;
@Column(name = "name")
private String username;
private Integer age;
@Enumerated(EnumType.STRING)
private RoleType roleType;
@Temporal(TemporalType.TIMESTAMP)
private Date createdDate;
@Temporal(TemporalType.TIMESTAMP)
private Date lastModifiedDate;
@Lob
private String description;
public enum RoleType {
USER, ADMIN
}
어노테이션 | 설명 |
@Column | 컬럼 매핑 |
@Temporal ( 자바 8 이 되면서 사용 X - LocalDateTime으로 대체 ) |
날짜 타입 매핑 |
@Enumerated ( 옵션 String 으로 사용 필수 ) | enum 타입 매핑 |
@Lob | BLOB , CLOB 매핑 |
@Transient | 특정 필드를 컴럼에 매핑하지 않음(매핑 무시) |
@Column
속성 | 설명 | 기본값 |
name | 필드와 매핑할 테이블의 컬럼 이름 | 객체의 필드 이름 |
insertable | 등록 가능여부 | TRUE |
updateable | 수정 가능여부 | TRUE |
nullable | false 로 설정하면 not null 제약조건 | |
unique | 한 컬럼에 유니크 제약조건 | |
columnDefinition | DB 컬럼 정보를 직접 줄 수 있다 | |
length | 문자 길이 제약 조건, String 타입에만 사용 | 255 |
precision, scale | BigDecimal 에 사용 | precision= 19 / scale = 2 |
@Enumerated : 필수로 STRING 으로 사용
- ORDINAL 로 사용시, enum 값 변경 하면 순서가 잘못될 수 있다.
속성 | 설명 | 기본값 |
value | ORDINAL : enum 을 순서로 저장 STRING : enum을 이름으로 저장 |
ORDINAL |
728x90
'Spring > JPA' 카테고리의 다른 글
연관 관계 매핑 (1) | 2022.09.22 |
---|---|
연관 관계가 필요한 이유 (0) | 2022.09.21 |
데이터베이스 스키마 자동 생성 (0) | 2022.09.20 |
객체와 테이블 매핑 (0) | 2022.09.20 |
영속성 컨텍스트 - 플러시 (0) | 2022.09.20 |
댓글