Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 자바의정석
- REGEXP_SUBSTR
- DispatcherServlet
- 불친절한 SQL 프로그래밍
- JPA
- 시큐어코딩
- 자바연습문제
- java
- Java의정석
- 자바공부
- 김영한
- Python
- 불친절한SQL프로그래밍
- 계층 쿼리
- 스프링
- Spring
- 분석함수
- 자바의정석 연습문제
- 이것이자바다
- docker
- Secure Coding
- 스프링 부트와 JPA
- 스프링 핵심원리
- 제네릭
- 스프링MVC
- inflearn
- Numpy
- 서블릿
- 스프링입문
- 인프런
Archives
- Today
- Total
Continuous Challenge
4. 엔티티 매핑 - 필드와 컬럼 매핑 본문
728x90
728x90
필드와 컬럼 매핑
매핑 어노테이션
- @Column : 컬럼 매핑
- @Temporal : 날짜 타입 매핑
- @Enumerated : enum 타입 매핑
- @Lob : BLOB, CLOB 매핑
- @Transient : 특정 필드를 컬럼에 매핑하지 않음(매핑 무시)
@Column
- name : 필드와 매핑할 테이블의 컬럼이름(default : 객체의 필드 이름)
- insertable, updatable : 등록, 변경 가능 여부(default : TRUE)
- nullable(DDL) : null 값의 허용 여부를 설정한다. false로 설정하면 DDL 생성 시에 not null 제약조건이 붙는다.
- unique(DDL) : @Table의 uniqueConstraints와 같지만 한 컬럼에 간단히 유니크 제약조건을 걸 때 사용한다.
- columnDefinition(DDL) : 데이터베이스 컬럼 정보를 직접 줄 수 있다. (default : 필드의 자바 타입과 방언 정보를 사용)
ex) varchar(100) default 'EMPTY' - length(DDL) : 문자 길이 제약조건, String 타입에만 사용한다.
- precision, scale(DDL) : BigDecimal 타입에서 사용한다.(BigInteger도 사용할 수 있다.) (default : precision = 19, scale = 2)
- precision은 소수점을 포함한 전체 자릿수를, scale은 소수의 자릿수다. 참고로 double, float 타입에는 적용되지 않는다. 아주 큰 숫자나 정밀한 소수를 다루어야 할 때만 사용한다.
@Enumerated
자바 enum 타입을 매핑할 때 사용
★ 주의) ORDINAL 사용 X (enum 클래스에 필드가 추가되는 경우가 있을 수 있음.)
- value (default : EnumType.ORDINAL)
- EnumType.ORDINAL : enum 순서를 데이터베이스에 저장
- EnumType.STRING : enum 이름을 데이터베이스에 저장
@Temporal
날짜 타입(java.util.Date, java.util.Calendar)을 매핑할 때 사용
참고) LocalDate, LocalDateTime을 사용할 때는 생략 가능(최신 하이버네이트 지원)
- value
- TemporalType.DATE : 날짜. 데이터베이스 date 타입과 매핑 (ex. 2013-10-11)
- TemporalType.TIME : 시간. 데이터베이스 time 타입과 매핑 (ex. 11:11:11)
- TemporalType.TIMESTAMP : 날짜와 시간. 데이터베이스 timestamp 타입과 매핑 (ex. 2013-10-11 11:11:11)
@Lob
데이터베이스 BLOB, CLOB 타입과 매핑
- @Lob에는 지정할 수 있는 속성이 없다.
- 매핑하는 필드 타입이 문자면 CLOB 매핑, 나머지는 BLOB 매핑
- CLOB : String, char[], java.sql.CLOB
- BLOB : byte[], java.sql.BLOB
@Transient
- 필드 매핑 X
- 데이터베이스에 저장X, 조회X
- 주로 메모리상에서만 임시로 어떤 값을 보관하고 싶을 때 사용
728x90
728x90
'Spring > 자바 ORM 표준 JPA 프로그래밍 - 기본편' 카테고리의 다른 글
5. 연관관계 매핑 (0) | 2022.03.29 |
---|---|
4. 엔티티 매핑 - 기본 키 매핑 (0) | 2022.03.25 |
4. 엔티티 매핑 - 객체와 테이블 매핑 (0) | 2022.03.25 |
3. 영속성 관리 - 내부 동작 방식 (0) | 2022.03.24 |
3. JPA 시작하기 (0) | 2022.03.23 |
Comments