- [JPA] 매핑 어노테이션2023년 10월 20일 16시 10분 57초에 업로드 된 글입니다.작성자: do_hyuk728x90반응형오늘은 엔티티 내 필드에서 매핑컬럼에 대한 특성을 지정할 수 있는 매핑 어노테이션을 알아보겠다. - @Column
- @Enumerated
- @Temporal
- @Lob
- @Transient
 
 @Column- name
- @Column(name = "컬럼명")
- 필드와 매핑할 테이블의 컬럼명을 지정한다.
- 기본값 : 필드명
 
 @Column private String name //컬럼명 : name(필드명) @Column(name="member_name") private String name //컬럼명 : member_name
 - insertable, updatable
- 필드 값 수정 시 DB에 반영할 지 여부
- @Column(insertable = false) : 엔티티 저장 시 이 필드는 DB에 저장하지 않는다.
- @Column(updatable = false) : 엔티티 수정 시 이 필드는 DB에 수정하지 않는다.
- 읽기 전용일 때 사용한다.
- 기본값 : true
 
 
 - nullable
- @Column(nullable = false)
- DDL 옵션
- null 허용 여부를 지정한다.
- 기본값 : true
 
 
 - unique
 - @Column(unique = true)
- DDL 옵션
- 해당 방법으로 Unique 지정 시 제약조건명이 랜덤생성되어 잘 사용하지 않음
- 기본값 : false
 
 
 - columnDefinition
- @Column(columnDefinition = "varchar(100) default 'EMPTY'")
- DDL 옵션
- 컬럼 정보를 직접 지정할 수 있다.
 
 
 - length
- @Column(length = 10)
- DDL 옵션
- 문자 길이 제약조건. String 타입에만 사용한다.
- 기본값 : 255
 
 
 - precision, scale
- @Column(precision = 0)
- BigDecimal 타입에서 사용한다.
- precision : 소수점을 포함한 전체 자리수
- scale : 소수의 자리수
 
 
 @Enumerated- value
- @Enumerated(value = EnumTypes.ORDINAL) : 
 - enum의 순서를 저장한다.
 - enum의 순서는 변경될 여지가 많기에 사용하지 않는 것을 추천한다.
- @Enumerated(value = EnumTypes.STRING) : 
 - enum의 이름을 저장한다.
 
- @Enumerated(value = EnumTypes.ORDINAL) : 
 
 @Temporal- value
- TemporalType.DATE
 - 날짜
 - 데이터베이스 data 타입과 매핑한다.
- TemporalType.TIME
 - 시간
 - 데이터베이스 time 타입과 매핑한다.
- TemporalType.TIMESTAMP
 - 날짜 + 시간
 - 데이터베이스 timestamp 타입과 매핑한다.
 
- TemporalType.DATE
 
 @Lob데이터베이스 BLOB, CLOB 타입과 매핑한다. 매핑하는 필드 타입이 문자일 경우 CLOB, 나머지는 BLOB으로 매핑한다. 
 @Transient필드 매핑을 하지 않을 때 사용한다. 엔티티의 해당 필드 DB 컬럼과 매핑하지 않으므로 저장 / 조회되지 않는다. 주로 메모리상에서 값을 임시로 보관하려할 때 사용한다. 728x90반응형'Spring' 카테고리의 다른 글Spring 이란? (1) 2024.01.03 [Spring Boot] Spring Security & OAuth2.0 사용 - 소셜 로그인 기능 구현하기1 (0) 2023.11.08 [Spring] Spring Security 기본 개념(JWT / OAuth 2.0 / 동작방식 / 구성요소) (0) 2023.11.06 [Spring] EntityNotFoundException 이란? (0) 2023.11.02 [Spring Data JPA] 파라미터 바인딩 (0) 2023.10.19 댓글