-
-
안녕하세요? 오늘은, JPA에서의 중요 매핑 어노테이션에 대해서 알아보도록 하겠습니다.
-
JPA의 중요 매핑 어노테이션의 종류는,
@Entity @Table @ID @Column @Enumerated @Temporal @Lob @Transient 등등이 존재합니다.
우선 샘플코드로 어떻게 사용하는지 알아보도록 하겠습니다.
@Entity
@Table(name="")
public class 엔티티명 {
@ID
private Long id;
@Column(name="")
private String name;
@Column
private Integer age;
@Enumerated(EnumType.STRING)
private RoleType roleType;
@Temporal(TemporalType.TIMESTAMP)
private Date createDate;
@Lob
private String description;
...
}
그럼 이제 각각의 어노테이션의 역활을 알아보도록 하겠습니다.
-
@Entity
: JPA에서 관리하는 DB 테이블 선언 어노테이션
-
@Table
: 테이블 이름 매핑 어노테이션
: 기본적으로, 엔티티 클래스 명을
이블명의 카멜케이스로 생성을 하게 되면
해당 어노테이션이 불필요하지만,
name 속성을 이용해서,
직접 테이블 명을 지정해줄 수 있다.
-
@ID
: 해당 엔티티의 Key값 컬럼 매핑 어노테이션
-
@Column
: 해당 엔티티의 컬럼 매핑 어노테이션
: 해당 어노테이션의 속성
속성명 | 설명 | 셋팅값 |
name | -필드와 매핑할 테이블의 컬럼 이름 | |
insertable(DDL) | -DB 등록 가능 여부 | true / false |
updateable(DDL) | -DB 변경 가능 여부 | true / false |
nullable(DDL) | -null값의 허용 여부 설정 | false는 not null |
unique(DDL) | -컬럼에 간단히 유니크 제약조건을 걸 때 사용 | |
columnDefinition(DDL) | -데이터베이스 컬럼 정보를 직접 부여 가능 | |
length(DDL) | -문자 길이 제약조건 -String 타입에만 사용 |
|
precision | -BigDecimal / BigInteger 타입에서 사용 -double, float 타입에는 적용 불가 -소수점을 포함한 전체 자릿수 |
|
scale(DDL) | -BigDecimal / BigInteger 타입에서 사용 -double, float 타입에는 적용 불가 -소수의 자리수 |
-
@Enumerated
: 해당 엔티티의 enum 타입 매핑 어노테이션
: 기본이 ORDINAL > enum 순서를 저장
※ 순서가 변하면, 기존 데이터의 마이그레이션이 필수
: STRING 선택 가능 > enum 이름을 저장
-
@Temporal
: 해당 엔티티의 날짜 타입 컬럼 매핑 어노테이션
: DATE / TIME / DATETIME
: 최신 자바 버전에서는, 해당 어노테이션 사용대신, 타입을 LocalDate / LocalDateTime 형식 사용 가능
-
@Lob
: 해당 엔티티의 BLOB, CLOB 컬럼 매핑 어노테이션
: 매핑하는 필드 타입이 문자면 CLOB, 나머지는 BLOB으로 매핑
-
@Transient
: 맵핑 제외 선언 어노테이션
오늘은, JPA에서의 중요 매핑 어노테이션에 대해서 알아보았습니다.
그럼 오늘도 즐거운 하루 되시길 바라겠습니다.
'프로그래밍 > Back-end' 카테고리의 다른 글
JPA 영속성 컨텍스트의 장점에 대하여! (0) | 2024.10.15 |
---|---|
JPA 영속성과 영속성 컨텍스트에 대하여! (0) | 2024.10.15 |
JPA 데이터 타입과 기본 임베디드 컬렉션에 대하여! (0) | 2024.10.14 |
JPA 키 매핑 종류와 전략에 대해서! (0) | 2024.10.14 |
JPA 상속관계 매핑 MappedSuperclass (0) | 2024.10.11 |
JPA 상속관계 매핑 (0) | 2024.10.11 |
JPA 객체 지향 모델링 연관관계 매핑 (2탄) (0) | 2024.10.11 |
JPA 객체 지향 모델링 연관관계 매핑 (1탄) (0) | 2024.10.11 |