본 내용은 인프런 김영한 강사님 JPA 기본 편 강의를 듣고 정리한 내용입니다.
https://www.inflearn.com/course/ORM-JPA-Basic
자바 ORM 표준 JPA 프로그래밍 - 기본편 강의 - 인프런
회사땜에 매일 바쁜 와중에 학원이라도 다닐까 생각했는데 마침 JPA 강의가 생겨서 꿀 타이밍이네요. 저는 이 전에 JPA 책을 보고 공부 했었는데요 궁금했던 점, 업무에 적용하며 고민하고 해결하
www.inflearn.com
엔티티 매핑 종류
| 객체와 테이블 매핑 | @Entity | @Table |
| 필드와 컬럼 매핑 | @Column | |
| 기본키 매핑 | @Id | |
| 연관관계 매핑 | @ManyToOne | @JoinColumn |
@Entity
<개념>
JPA를 사용해서 테이블과 매핑할 때 필수(JPA가 관리)
기본 생성자가 필수
final, enum, interface, inner 클래스 사용 불가
<속성>
name -> JPA에 사용할 엔티티 이름 지정 ex) @Entity(name = user)
@Table
<개념>
엔티티와 매핑할 테이블 지정
<속성>
name -> 매핑할 테이블 이름 지정
catalog -> 데이터베이스 catalog 매핑
schema -> 데이터베이스 schema 매핑
uniqueConstraints(DDL) -> DDL 생성 시 유니크 제약 조건 생성
여기 value에 들어갈 수 있는 속성이 5개가 있다
create-> 기존 테이블 삭제 후 다시 생성
create-drop -> create와 같으나 종료 시점에 DROP
update -> 변경분만 반영
Validate -> 엔티티와 테이블이 정상 매핑 되었는지만 확인
none -> 사용하지 않음
*주의*
운영 단계에서 절대 create, create-drop, update 사용 x
@Column
<개념>
엔티티와 매핑할 컬럼 지정
<속성>
name -> 매핑할 테이블 컬럼 이름 지정
insertable, updatable -> 기본값 True , insertable을 False로 지정할 경우 DB에 값을 넣을 수 없다. updatable을 false로 할 경우 DB값이 Update로 되지 않는다.
nullable(DDL) -> null값 허용 여부
unique(DDL) -> 유니크 제약 조건 사용
columnDefination(DDL) -> 데이터베이스 컬럼 정보 직접 제공
precision, scale(DDL) -> BigDecimal 타입 사용, precisio은 소수점을 포함한 전체 자리 scale은 소수점 자리 지정 가능
* DDL 생성 기능은 DDl을 자동 생성할 떄만 사용 JPA 실행 로직에 영향을 주지 않는다.
@Enumerated
<개념>
자바 enum 타입 매핑할때 사용
<속성>
value
-> EnumType.ORDINAL, EnumType, STRING 2개 있는데 ORDINAL은 사용X
ORDINAL을 사용하지 말라는 이유는 ORDINAL은 enum 순서를 DB에 저장하는데 enum에 값을 추가해 순서가 바뀔 겨우 문제가 생김 그래서 무조건 STRING을 써야 한다.
'JAVA & SPRING > JPA' 카테고리의 다른 글
| JPA 기본편0(연관관계 매핑 기초, 연관관계가 필요한 이유 & 연관관계 매핑) (0) | 2024.02.23 |
|---|---|
| JPA 기본편0 (기본키 매핑) (0) | 2024.02.20 |
| JPA 기본편0 (영속성 컨텍스트 이점(2)) (1) | 2024.02.15 |
| JPA 기본편0 (영속성 관리, 영속성 컨텍스트 이점(1)) (0) | 2024.02.15 |
| JPA 기본편0 (JPA 소개) (1) | 2024.02.15 |