4. 엔티티 매핑 - (4.2 데이터베이스 스키마 자동 생성)

HotFried·2023년 9월 25일
0
  • 애플리케이션 실행 시점에 DDL을 자동 생성

  • 테이블 중심 -> 객체 중심
    미리 테이블을 만들지 않아도 되기 때문에 객체 중심의 개발을 할 수 있다.

  • 데이터베이스 방언을 활용해 DB에 맞는 적절한 DDL을 생성

  • 생성된 DDL은 개발 장비에서만 사용
    ex) 운영 서버에 hibernate.hbm2ddl.auto 옵션을 create로 적용했다면...?
    -> 운영 중인 DB가 초기화 되어버리는 참사가 발생할 수 있다...

링크 : hibernate.hbm2ddl.auto 설정


주의 사항

운영 장비에는 절대 create, create-drop, update 사용하면 안된다.
개발 초기 단계 : create 또는 update
테스트 서버 : update 또는 validate
스테이징과 운영 서버 : validate 또는 none


DDL 생성 기능

제약 조건 추가

ex) 해당 컬럼 필수, 10자 초과X
@Column(nullable = false, length = 10)


유니크 제약조건 추가

@Table(uniqueConstraints = {@UniqueConstraint( name = "NAME_AGE_UNIQUE",
columnNames = {"NAME", "AGE"} )})

해당 속성들은 단지 DDL을 자동으로 생성할 때만 사용되고, JPA의 실행 로직에는 아무런 영향을 주지 않는다.

But, 해당 기능을 사용하면 엔티티만 보고 다양한 제약조건을 파악할 수 있다는 장점이 있다.


참고 :

김영한. 『자바 ORM 표준 JPA 프로그래밍』. 에이콘, 2015.

자바 ORM 표준 JPA 프로그래밍 - 기본편

profile
꾸준하게

0개의 댓글