해당 글은 김영한 님의 자바 ORM 표준 JPA 프로그래밍을 참고하여 작성한 글입니다.
✅ 필드와 컬럼 매핑
▶ @Column
- 객체 필드를 테이블 컬럼에 매핑한다.
속성 | 기능 | 기본값 |
name | 필드와 매핑할 테이블의 컬럼 이름 | 객체의 필드 이름 |
nullable(DDL) | null 값의 허용 여부를 설정한다. | true |
unique(DDL) | 한 컬럼에 간단히 유니크 제약조건을 걸 때 사용한다. | |
columnDefinition(DDL) | 데이터베이스 컬럼 정보를 직접 줄 수 있다. | |
length(DDL) | 문자 길이 제약 조건, String 타입에만 사용한다. | 255 |
precision / scale(DDL) | BigDecimal 타입에서 사용한다. 아주 큰 숫자나 정밀한 소수를 다루어야 할 때만 사용한다. | precision=19 / scale=2 |
insertable(거의 사용X) | 엔티티 저장 시 이 필드도 같이 저장한다. | true |
updatable(거의 사용X) | 엔티티 수정 시 이 필드도 같이 수정한다. | true |
table(거의 사용X) | 하나의 엔티티를 두 개 이상의 테이블에 매핑할 때 사용한다. | 현재 클래스가 매핑된 테이블 |
▶ @Temporal
- 자바 날짜 타입(Java.util.Date, java.util.Calendar)을 매핑할 때 사용한다.
속성 | 기능 | 기본값 |
value | - TemporalType.Date: 날짜, 데이터베이스 date 타입과 매핑 - TemporalType.TIME: 시간, 데이터베이스 time 타입과 매핑 - TemporalType.TIMESTAMP: 날짜와 시간, 데이터베이스 timestamp 타입과 매핑 |
▶ @Enumerated
- 자바의 enum 타입을 매핑할 때 사용한다.
속성 | 기능 | 기본값 |
value | - EnumType.ORDINAL: enum 순서를 데이터베이스에 저장 - EnumType.STRING: enum 이름을 데이터베이스에 저장 |
EnumType.ORDINAL |
⚠️ ORDINAL은 주의해서 사용해야 한다.
▶ @Lob
- 데이터베이스 BLOB, CLOB 타입과 매핑한다.
- CLOB: 문자(예: String, char[], java.sql.CLOB)
- BLOB: 나머지(예: byte[], java.sql.BLOB)
▶ @Transient
- 메모리상에서만 임시로 어떤 값을 보관하고 싶은 경우, 데이터베이스에 저장, 조회하지 않고 매핑하지 않을 Field에 사용한다.
📍 참고
'Programming > JPA' 카테고리의 다른 글
[JPA] 연관관계 매핑 - 엔티티(Entity) 매핑 (4) (1) | 2024.07.25 |
---|---|
[JPA] 데이터베이스 스키마 자동 생성 (0) | 2024.07.25 |
[JPA] 기본 키 매핑 - 엔티티(Entity) 매핑 (2) (0) | 2024.07.25 |
[JPA] 객체와 테이블 매핑 - 엔티티(Entity) 매핑 (1) (0) | 2024.07.25 |
[JPA] 영속성 컨텍스트(Persistence Context) (0) | 2024.07.25 |