JPA의 DDL-AUTO가 만들어내는 DDL은 어떤 모습일까
- JPA DDL-AUTO 옵션은
create
, none
, create-drop
, update
, validate
등이 있으며, 운영 환경에서는 validate
또는 옵션 제거를 권장합니다. ⚠️
- 로깅 설정을 통해 JPA가 생성하는 DDL 스크립트를 콘솔에서 확인할 수 있습니다. ️🔥
@GeneratedValue
전략은 IDENTITY
, SEQUENCE
, TABLE
, UUID
네 가지가 있습니다. ⚙️
IDENTITY
전략은 데이터베이스의 자동 증가 기능을 이용해 ID를 생성합니다. 🔢
SEQUENCE
전략은 시퀀스 객체를 사용하여 ID를 생성하며, SEQUENCE GENERATOR
어노테이션으로 시퀀스 객체를 정의합니다. 🔗
- 1대N 관계에서
@JoinColumn
은 FK 칼럼명을 지정하고, @OneToMany
의 mappedBy
는 관계의 주인 설정을 위해 사용됩니다. 🔑
- N대N 관계에서는 조인 테이블을 생성하여 관계를 관리하며,
@JoinTable
어노테이션을 사용합니다. 🤝
- 칼럼 어노테이션을 통해 칼럼의 속성(이름, 널 허용 여부, 길이, 유니크 제약 조건 등)을 정의할 수 있습니다. 📝
- 데이터베이스 네이밍 규칙에 맞춰 DDL 스크립트를 수정해야 할 수 있습니다. ✍️
- 스프링 부트 및 데이터베이스 버전에 따라 DDL 생성 결과가 달라질 수 있습니다. 🔄