[JPA] 엔티티 매핑 관련 어노테이션

SEOP·2023년 4월 23일
0

엔티티 매핑 관련 어노테이션

@Entity
클래스를 엔티티로 선언
@Table
엔티티와 매핑할 테이블을 지정
@Id
테이블의 기본키에 사용할 속성을 지정
@GeneratedValue
키 값을 생성하는 전략 명시
@Column <<<아래 참고
필드와 컬럼 매핑
@Lob
BLOB,CLOB 타입 매핑

[BLOB / CLOB]
BLOB : 바이너리 데이터를 DB 외부에 저장하기 위한 타입. 이미지 사운드, 비디오 같은 멀티미디어 데이터를 다룰 때 사용
CLOB : 사이즈가 큰 데이터를 외부파일로 저장하기 위한 데이터 타입. 문자형 대용량 파일을 저장하는데 사용

@CreationTimestamp
insert할 시 시간 자동 저장
@UpdateTimeStamp
update할 시 시간 자동 저장
@Enumerated
enum 타입 매핑
@Transient
해당 필드 데이터베이스 매핑 무시
@Temporal
날짜 타입 매핑
@CreateDate
엔티티가 생성되어 저장될 때 시간 자동 저장
@LastModifiedDate
조회한 엔티티의 값을 변경할 때 시간 자동 저장

@Column 속성

name
필드와 매핑할 컬럼의 이름 설정
기본값 : 객체의 필드 이름
unique(DDL)
유니크 제약 조건 설정
insertable
insert 가능 여부
기본값 : true
updatable
update 가능 여부
기본값 : true
length
String 타입의 문자 길이 제약조건 설정
기본값 : 225
nullable(DDL)
null값의 허용 여부 설정
false 설정시 DDL 생성 시에 not null 제약조건 추가

columnDefinition
데이터베이스 컬럼 정보 직접 기술
ex) @Column(columnDefinition = "varchar(5) default'10' not null")

precision,scale(DDL)
BigDecimal 타입에서 사용
precision은 소수점을 포함한 전체 자리수
sclae은 소수점 자리수
Double과 float 타입에는 적용되지 않음

DDL이란?
= DATA Definition Language
테이블, 스키마, 인덱스, 뷰, 도메인을 정의, 변경, 제거할 때 사용하는 언어
ex) CREATE, DROP ...

@GeneratedValue 기본키 생성 전략

  1. GenerationType.AUTO -->Default
    JPA 구현체가 자동으로 생성 전략 결정
    데이터베이스가 변경되더라도 코드를 수정할 필요가 없어서 편리하다.
  2. GenerationType.IDENTITY
    기본키 생성을 데이터베이스에 위임
  3. GenerationType.SEQUENCE
    데이터베이스 시퀀스 오브젝트를 이용한 기본키 생성
  4. GenerationType.TABLE
    키 생성용 테이블 사용. @Table Generator 필요
profile
응애 나 애기 개발자

0개의 댓글