SMALL
매핑 종류
- 객체와 테이블 매핑: @Entity, @Table
- 필드와 컬럼 매핑: @Column
- 기본 키 매핑: @Id
- 연관관계 매핑: @ManyToOne,@JoinColumn
@Entity
@Entity 어노테이션이 붙인 클래스는 JPA가 관리하고 이것을 엔티티라고 한다.
JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 필수이다.
!!! 주의 !!!
기본 생성자 필수 ( 파라미터가 없는 public 또는 protected 생성자)
final 클래스, enum, interface, inner 클래스 사용 X
저장할 필드에 final 사용 X
@Table
name : JPA에서 사용할 엔티티 이름을 지정한다. - 보통은 Entity 그대로의 이름을 쓰긴 합니다.
catalog : 데이터베이스 catalog 매핑
schema : 데이터베이스 schema 매핑
uniqueConstraints (DDL) : DDL 생성 시에 유니크 제약 조건 생성
데이터베이스 스키마 자동 생성
DDL 설정으로 아래와 같은 옵션을 추가하게 되면 애플리케이션 실행 시점에 작동하게 된다.
<property name="hibernate.hbm2ddl.auto" value="create" />
옵션 | 설명 |
create | 기존테이블 삭제 후 다시 생성 (DROP + CREATE) |
create-drop | create와 같으나 종료시점에 테이블 DROP |
update | 변경분만 반영(운영DB에는 사용하면 안됨) |
validate | 엔티티와 테이블이 정상 매핑되었는지만 확인 |
none | 사용하지 않음 |
? 평균 옵션 설정 방법 ?
개발 초기 단계는 create 또는 update
테스트 서버는 update 또는 validate
스테이징과 운영 서버는 validate 또는 none
실제로 해보고 느낀점
실제로 DDL 적용으로 개발할때 Entity를 많이 바꾸게 된다.
이때 데이터에 중요한게 없다면 create 로 만들고 작업하면 좋다.
또한, 운영서버에는 validate 를 보통 사용하고 있다.
반응형
LIST
'Spring' 카테고리의 다른 글
비동기 동기 블로킹, 논블로킹 (1) | 2024.11.06 |
---|---|
JPA - Entity 매핑 (2) | 2024.01.05 |
JPA - 영속성 컨텍스트 (1) | 2023.12.28 |
JPA - 구동 방식 (1) | 2023.12.27 |
JPA - 기본 개념 (0) | 2023.12.27 |