[JPA] 필드와 컬럼 매핑
필드와 컬럼 매핑
매핑 정리
- @Column : 컬럼 매핑
- name : 필드와 매핑할 테이블의 컬럼 이름
- insertable, updatable : 등록, 변경 가능 여부
- nullable(DDL) : NULL값의 허용여부 설정, false로 설정하면 not null 제약조건이 붙는다.
- unique(DDL) : @Table의 uniqueConstraints와 같지만 한 컬럼에 간단히 유니크 제약조건을 걸 때 사용한다.
- columnDefinition(DDL) : 데이터베이스 컬럼 정보를 직접 줄 수 있다.
- length(DDL) : 문자 길이 제약조건, default 값은 255
- @Temporal : 날짜 타입 매핑
- @Enumerated : enum 타입 매핑
- @Lob : BLOB, CLOB 매핑 (varchar 보다 훨씬 큰 크기가 필요 할 때 사용 )
- @Transient : 메모리에서만 쓰고 디비에는 상관없이 사용할때 사용
Enumerated
- 자바 enum 타입을 매핑 할 때 사용, 주의 ! ORDINAL 사용 X
- EX) EnumType.ORDINAL : enum 순서를 데이터베이스에 저장
-
EnumType.STRING : enum 이름을 데이터베이스에 저장
- enum의 순서가 변경되면 데이터 구분이 안되므로 위험하기 때문에 STRING을 사용한다.
@Temporal
- 날짜 타입을 매핑할때 사용한다.
- TemporalType.DATE : 날짜, 데이터베이스 date 타입과 매핑 (2022-03-08)
- TemporalType.TIME : 시간, 데이터베이스의 time 타입과 매핑 ( 11:11:11)
- TemporalType.DATETIME : 날짜와 시간, 데이터베이스 timestamp 타입과 매핑 (2022-03-08 11:11:11)
@Transient
- 필드 매핑X
- 데이터 베이스에 저장 X, 조회 X
- 주로 메모리상에서만 임시로 어떤 값을 보관하고 싶을때 사용
😄 참고 : 인프런 김영한님의 JPA 기본 강의 및 교재 , 블로그
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄
개인메모