반응형
@Column
컬럼 매핑
속성 | 설명 | 기본값 |
name | 필드와 매핑할 테이블의 컬럼 이름 | 객체의 필드 이름 |
insertable, updatable | 등록, 변경 가능 여부 | TRUE |
nullable(DDL) | null 값의 허용 여부를 설정한다. false로 설정하면 DDL 생성 시에 not null제약 조건이 붙는다. | |
unique(DDL) | @Table의 uniqueConstraints와 같지만 한 컬럼에 간단히 유니크 제약조건을 걸 때 사용한다. | |
colmnDefinition(DDL) | 데이터베이스 컬럼 정보를 직접 줄 수 있다. ex) varchar(100) default ‘EMPTY’ | 필드의 자바 타입과 방언 정보를 사용 |
length(DDL) | 문자 길이 제약조건, String 타입에만 사용한다. | 255 |
precision, scale(DDL) | BigDecimal 타입에서 사용한다.(BigInteger도 사용할 수 있다) precision은 소수점을 포함한 전체 자릿수를 scale은 소수의 자릿수다. 참고로 double, float 타입에는 적용되지 않는다.아주 큰 숫자나 정밀한 소수를 다루어야할 때만 사용한다. | precision=19 |
@Enumerated
enum 타입을 매핑할 때 사용
속성 | 설명 | 기본값 |
vlaue | EnumType.ORDINAL: enum 순서를 데이터 베이스에 저장 EnumType.STRING : enum 이름을 데이터베이스에 저장 |
EnumType.ORDINAL |
EnumType.ORDINAL은 사용하지 않음.
→ enum 추가되거나 변경시에 문제가 생길 수 있음.
@Lob
데이터베이스 BLOB, CLOB 매핑
- @Lob에는 지정할 수 있는 속성이 없다.
- 매핑하는 필드 타입이 문자면 CLOB 매핑, 나머지는 BLOB 매핑
- CLOB: String, char[], java.sql.CLOB
- BLOB: byte[], java.sql,BLOB
@Transient
특정 필드를 컬럼에서는 사용하지 않음
- 필드 매핑 X
- 데이터베이스에 저장 X, 조회 X
- 주로 메모리상에서만 임시로 어떤 값을 보관하고 싶을 때 사용
@Transient
private Integer temp;
반응형
'프로그래밍 언어 > JPA' 카테고리의 다른 글
[JPA]프록시를 사용하는 이유(즉시로딩, 지연로딩) (0) | 2023.04.22 |
---|---|
[JPA] Mapped Superclass - 매핑 정보 상속 (0) | 2023.04.17 |
[JPA]상속관계 매핑 (0) | 2023.04.17 |
[JPA] 다양한 연관관계 매핑(다대일, 일대다, 일대일, 다대다) (0) | 2023.04.16 |
[JPA] 데이터베이스 스키마 자동 생성 옵션 (0) | 2023.04.12 |