본문 바로가기
JPA/JPA 기초

JPA 정리(2) - 스키마 생성 및 제약 조건

by 옹알이옹 2023. 7. 17.

1.Entity와 테이블 매핑

@Entity 가 붙은 클래스는 JPA가 관리 → 엔티티

 

주의 사항

  1. 기본 생성자 필수!
  2. final 클래스 사용 금지
  3. 필드에도 final 사용 금지
  4. setter 가능한 사용 금지

2.데이터베이스 스키마 자동 생성

  • DDL을 어플리케이션 실행 시점에 자동 생성
  • 이렇게 생성된 DDL은 개발 서버에서만 사용
  • 생성된 DDL은 운영서버에서는 사용하지 않거나, 다듬은 후 사용

데이터베이스 스키마 자동 생성에 관한 속성

  1. create : 기존 테이블 삭제 후 다시 생성
  2. create-drop : create와 같으나 종료시점에 테이블 drop
  3. update: : 변경분만 반영(추가만 됨)
  4. validate : 엔티티와 테이블이 정상 매핑되었는지만 확인 → 맞지 않다면 에러 발생
  5. none : 사용하지 않음

운영DB에는 절대 create, create-drop, update 사용하면 안됨

  • 개발 초기 단계는 create 또는 update
  • 테스트 서버는 update 또는 validate
  • 스테이징과 운영 서버는 validate 또는 none

3.필드에 붙는 어노테이션

@Column(name="member_id") 
private Long id;

위처럼 필드명과 DB명이 다른 경우 name 속성을 통해 매핑 가능

 

@Column(unique = true, length = 10) 등으로 제약조건 생성 가능

@Temporal : 날짜 타입을 생성.매핑 할 때 사용,

@Lob : cLob, bLob 타입

@Transient : DB와 별개로 사용한다.

@Enumerated : enum 타입 필드 생성, 무조건 String 타입으로 써야함

@Column의 속성

  1. insertable, updatable : 등록 변경 가능 여부(기본값 true)
  2. nullable : not null 제약조건(기본값 true, null 허용)

* 해당 글은 김영한님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의를 참조하여 작성하였습니다.

https://www.inflearn.com/course/ORM-JPA-Basic/dashboard

반응형