-
엔티티(Entity) 매핑 관련 어노테이션 정리SPRING/ANNOTATION 2021. 10. 10. 23:57반응형
엔티티 매핑 관련 어노테이션 정리
@Entity
클래스를 엔티티로 선언 - 이 어노테이션을 붙임으로써 JPA가 해당 클래스를 관리하게 됩니다.
@Table
엔티티와 매핑할 테이블을 지정합니다.
@Id
테이블의 기본키에 사용할 속성을 지정합니다.
@GeneratedValue
주키의 값을 위한 자동 생성 전략을 명시하는데 사용합니다.
생성 전략 설명 GenerationType.AUTO(default) 방언에 따라 자동 지정, 기본값 GenerationType.IDENTITY 기본키 생성을 데이터베이스에 위임
-Mysql 데이터베이스의 경우 AUTO_INCREMENT를 사용하여 기본키를 생성GenerationType.SEQUENCE 데이터베이스 시퀀스 오브젝트 사용, ORACLE
- @SequenceGenerator를 사용하여 시퀀스 등록 필요GenerationType.TABLE 키 생성용 테이블 사용 @TableGenerator 필요 @Column
필드와 컬럼을 매핑하는 데 사용합니다.
속성 설명 기본값 name 필드와 매핑할 컬럼의 이름 설정 객체의 필드 이름 insertable, updateable 등록,변경가능여부 TRUE nullable(DDL) null 값의 허용 여부를 설정 false로 설정하면 DDL생성 시에 not null 제약조건이 붙는다. unique(DDL) @Table의 uniqueConstraints와 같지만 한 컬럼에 간단히 유니크 제
약조건을 걸 때 사용한다.columnDefinition 데이터베이스 컬럼 정보를 직접 줄 수 있다.
예)
@Colnum(columnDefinition =
"varchar(5) default '10' not null")precision,scale(DDL) BigDecimal 타입에서 사용한다(BigInteger도 사용할 수 있다).
precision은 소수점을 포함한 전체 자 릿수를, scale은 소수의 자릿수
다. 참고로 double, float 타입에는 적용되지 않는다. 아주 큰 숫자나
정 밀한 소수를 다루어야 할 때만 사용한다.length String 타입의 문자 길이 제약조건 설정 255 @Lob
BLOB (바이너리 데이터를 DB 외부에 저장하기 위한 타입(이미지, 사운드, 비디오 같은 멀티미디어 데이터를 다룰 때 사용할 수 있습니다)
CLOB (문자형 대용량 파일을 저장 하는데 사용하는 데이터 타입)
을 타입매핑 합니다.
@CreationTimestamp
insert시 시간 자동 저장합니다.
@Enumerated
enum 타입을 매핑합니다.
@Transient
해당 필드 데이터베이스 매핑을 무시합니다.
@Temporal
날짜 타입을 매핑할 때 사용합니다.
@CreateDate
엔티티가 생성되어 저장될 때 시간을 자동으로 저장합니다.
@LastModifiedDate
조회한 엔티티의 값을 변경할 때 시간을 자동 저장합니다.
예시 엔티티
참고 : https://www.inflearn.com/course/ORM-JPA-Basic (김영한님의 기본 JPA) ,
반응형