1. generate-ddl
설명:
- 데이터베이스 스키마를 애플리케이션의 엔티티(Entity) 모델을 기반으로 자동 생성할지 여부를 설정합니다.
- DDL은 테이블 생성 및 수정과 같은 데이터베이스 구조 정의를 나타냅니다.
값:
- true: 엔티티를 기반으로 데이터베이스 스키마를 자동 생성합니다.
- false: 스키마를 생성하지 않습니다. (기본값)
주의:
- 이 설정은 Hibernate 또는 JPA 구현체에 따라 동작하며, 데이터베이스에 직접 영향을 미칩니다.
- 프로덕션 환경에서는 일반적으로 false로 설정합니다.
2. hibernate.ddl-auto
설명:
- Hibernate가 데이터베이스 스키마를 어떻게 관리할지 설정합니다.
주요 값:
- none: 스키마 자동 생성 비활성화.
- create: 애플리케이션 시작 시 기존 스키마를 삭제하고 새로 생성.
- create-drop: 애플리케이션 시작 시 스키마를 생성하고 종료 시 삭제.
- update: 기존 스키마를 유지하면서 변경된 엔티티 기반으로 업데이트.
- validate: 데이터베이스 스키마를 확인만 하고 변경하지 않음.
spring:
jpa:
hibernate:
ddl-auto: update
3. show-sql
설명:
- Hibernate가 실행하는 SQL 쿼리를 콘솔에 출력할지 설정합니다.
값:
- true: 실행되는 SQL 쿼리를 출력.
- false: SQL 쿼리를 출력하지 않음. (기본값)
spring:
jpa:
show-sql: true
4. properties.hibernate.format_sql
설명:
- SQL 쿼리를 가독성 있게 포맷하여 출력할지 설정합니다.
값:
- true: SQL 쿼리를 읽기 쉽게 포맷.
- false: SQL 쿼리를 포맷하지 않음. (기본값)
spring:
jpa:
properties:
hibernate:
format_sql: true
5. properties.hibernate.dialect
설명:
- Hibernate가 사용할 데이터베이스 방언(Dialect)을 설정합니다.
- 방언은 특정 데이터베이스의 SQL 구문 및 기능을 지원하기 위한 설정입니다.
spring:
jpa:
properties:
hibernate:
dialect: org.hibernate.dialect.MySQLDialect
6. open-in-view
설명:
- Spring의 Open Session in View 기능을 활성화하거나 비활성화합니다.
- 이 설정은 기본적으로 활성화되어 있으며, View 레이어에서도 Lazy-Loading을 지원합니다.
값:
- true: View 레이어에서 Lazy-Loading을 허용.
- false: View 레이어에서 Lazy-Loading을 비활성화.
spring:
jpa:
open-in-view: false
7. database-platform
설명:
- hibernate.dialect와 비슷하지만 더 추상적으로 데이터베이스 플랫폼을 지정합니다.
spring:
jpa:
database-platform: org.hibernate.dialect.MySQL8Dialect
8. spring.jpa.database
설명:
- 사용 중인 데이터베이스 유형을 Spring에 명시적으로 알려줍니다.
주요 값:
- default: 기본값. 자동으로 감지.
- mysql: MySQL.
- postgresql: PostgreSQL.
- h2: H2 Database 등.
spring:
jpa:
database: mysql
9. spring.datasource.*와 연계
generate-ddl과 같은 JPA 설정은 데이터 소스 설정과 함께 작동해야 합니다. 주로 spring.datasource.url, username, password와 함께 사용합니다.
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb
username: root
password: password
jpa:
hibernate:
ddl-auto: update
properties:
hibernate:
show_sql: true
format_sql: true
정리)
generate-ddl: true는 엔티티를 기반으로 데이터베이스 테이블을 생성하는 기능을 활성화합니다. 이 외에도 다양한 설정을 통해 Hibernate와 JPA의 동작을 세부적으로 제어할 수 있습니다. 설정값은 환경(로컬 개발/프로덕션)에 따라 다르게 적용하는 것이 좋습니다.
'Spring > Spring JPA' 카테고리의 다른 글
[JPA] generate-ddl과 ddl-auto 차이 (1) | 2024.12.04 |
---|---|
[JPA] hibernate.ddl-auto (0) | 2024.12.04 |
[JPA] spring.jpa.properties.hibernate.dialect (0) | 2024.12.04 |
[JPA] 영속성 컨텍스트(Persistence Context) (0) | 2024.12.03 |
[JPA]@ManyToOne 필드에 @ToString.Exclude 붙이는 이유 (0) | 2024.11.28 |