프로젝트 생성
1. 프로젝트 이름 및 위치 / Java 등 다양한 초기 설정을 하고 싶은 대로, 버전에 맞게 설정해준다.
2. Dependencies를 다음과 같이 추가해준다.
Jpa 초기화 전략 관련 설정(application.properties)
1. spring.jpa.generate-ddl
DDL 생성 시 DB의 고유 기능 사용 유무를 설정한다. 이 옵션을 true로 설정하면 관련 데이터를 기반으로 서버가 시작할 때 DDL문을 생성하여 DB에 적용하고, 서버가 시작할 때마다 수행되기 때문에 기본적으로 false로 설정해준다.
2. spring.jpa.hibernate.ddl-auto
DDL 실행에 대한 설정으로 다음과 같은 값을 가진다.
- none : 아무런 작업도 하지 않음(DB 테이블은 따로 직접 생성)
- create : SessionFactory가 시작될 때(서버가 시작될 때) 기존 테이블을 Drop하고 새 테이블을 생성(재생성)
- create-drop : 서버 시작 시 테이블 Drop 및 생성, 서버 종료 시 Drop => 총 2번 Drop
- update : 기존 테이블에 해당하는 Entitiy 클래스가 변경되면 기존 테이블을 Drop하고 새로운 Entity 클래스가 반영된 테이블을 생성 (그러나 Drop하지 않고 변경된 컬럼을 추가하는 경우도 존재)
- validate : Entity와 테입르이 잘 매핑되어 있는지 확인하여, 안 된 경우(다를 경우) 프로그램을 종료
* SessionFactory = 서버가 시작할 때 만든 프로그램과 DB를 연결하는 객체(= 다리)
* create / create-drop / update => 개발할 때만 사용 (특히 update로만)
3. spring.jpa.dateabase : DBMS(MySQL, Oracle, MariaDB 등등)
4. spring.jpa.database-platform : Dialect(방언) 설정
* Dialect = DB 작업은 기본적으로 공통적인 SQL을 사용하지만, 각 DBMS 별로 조금씩 다르며, 그 부분을 Dialect라고 함