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 |
Tags
- ddl-auto
- 즉시 로딩
- Remember-me
- jpa
- 세션 고정 보호
- concurrentsessionfilter
- field column mapping
- 임베디드 타입
- AnonymousAuthenticationFilter
- 양방향 매핑
- MySQL
- Spring Security
- 기본 키 매핑
- SessionManagementFilter
- 동시 세션 제어
- JPQL
- TABLE
- 기본값 타입
- Database
- @MappedSuperclasss
- 값 타입 비교
- spring jpa
- form login
- orphanRemovel
- 지연 로딩
- 다대다
- 세션 생성 정책
- 객제지향 쿼리 언어
- 값 타입 컬렉션
- 상속관계 매핑
Archives
- Today
- Total
hoondev
[Spring JPA] 필드와 컬럼 매핑 본문
package hellojpa;
import javax.persistence.*;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
@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;
//Getter, Setter…
}
매핑 어노테이션 정리
어노테이션 | 설명 |
@Column | 컬럼 매핑 |
@Temporal | 날짜 타입 매핑 |
@Enumerated | enum 타입 매핑 |
@Lob | BLOB, CLOB 매핑 |
@Transienrt | 특정 필드를 컬럼에 매핑하지 않음(매핑 무시) |
@Column
- name: 필드와 매핑할 테이블의 컬럼 이름 (기본값: 객체의 필드 이름)
- insertable, updatable: 등록, 변경 가능 여부 (기본값: TRUE)
- nullable(DDL): null 값의 허용 여부를 설정한다. false로 설정하면 DDL 생성 시에 not null 제약조건이 붙는다.
- unique(DDL): @Table의 uniqueConstraints와 같지만 한 컬럼에 간단히 유니크 제 약조건을 걸 때 사용한다. columnDefinition (DDL): 데이터베이스 컬럼 정보를 직접 줄 수 있다. ex) varchar(100) default ‘EMPTY' (기본값: 필드의 자바 타입과 방언 정보를 사용해 서 적절한 컬럼 타입)
- length(DDL): 문자 길이 제약조건, String 타입에만 사용한다. (기본값: 255)
- precision, scale(DDL): BigDecimal 타입에서 사용한다(BigInteger도 사용할 수 있다). precision은 소수점을 포함한 전체 자 릿수를, scale은 소수의 자릿수 다. 참고로 double, float 타입에는 적용되지 않는다. 아주 큰 숫자나 정 밀한 소수를 다루어야 할 때만 사용한다. (기본값: precision=19, scale=2)
@Enumerated
- value:
- EnumType.ORDINAL: enum 순서를 데이터베이스에 저장,
- EnumType.STRING: enum 이름을 데이터베이스에 저장
- (기본값: EnumType.ORDINAL)
@Temporal
- value:
- TemporalType.DATE: 날짜, 데이터베이스 date 타입과 매핑 (예: 2013–10–11)
- TemporalType.TIME: 시간, 데이터베이스 time 타입과 매핑 (예: 11:11:11)
- TemporalType.TIMESTAMP: 날짜와 시간, 데이터베이 스 timestamp 타입과 매핑(예: 2013–10–11 11:11:11)
@Lob
매핑하는 필드 타입이 문자면 CLOB 매핑, 나머지는 BLOB 매핑
- CLOB: String, char[], java.sql.CLOB
- BLOB: byte[], java.sql. BLOB
Reference
https://www.inflearn.com/course/ORM-JPA-Basic
'Spring JPA' 카테고리의 다른 글
[Spring JPA] 단방향 연관관계 (0) | 2023.01.23 |
---|---|
[Spring JPA] 기본 키 매핑 (0) | 2023.01.22 |
[Spring JPA] 데이터베이스 스키마 자동 생성 (0) | 2023.01.20 |
[Spring JPA] 객체와 테이블 매핑 (0) | 2023.01.19 |
[Spring JPA] 준영속 (0) | 2023.01.18 |
Comments