Free Lines Arrow
본문 바로가기
DataBase/JPA

[JPA] JPA의 설정 옵션들

by skahn1215 2022. 1. 26.
728x90
반응형

JPA 의 옵션들을 살펴보자

  • JPA 옵션들은 운영과 개발하는데 있어 상당히 중요하다.
    그렇기 때문에 어떤 옵션들이 있는지 알고 가는것이 중요하다.
  • yaml 파일 기준으로 작성한다.

1. 데이터 베이스 스키마 자동생성 옵션

yaml 파일에 다음과 같이 옵션 지정

spring:
  jpa:
    hibernate:
      ddl-auto: 옵션지정

 

Create

  • 기존 @Entity 가 붙어있는 테이블들을 Drop 한뒤 다시 생성한다.
  • 운영 DB에 사용하면 망한다.
1. Hibernate: // drop
    drop table table_name if exists

2. Hibernate: // create
    create table table_name (
        ..., ..., ...
    )

 

Create-Drop

  • create 와 동일하나 어플리케이션 종료 시점에 @Entity 테이블들을 Drop 한다.
  • 운영 DB에 사용하면 망한다.
// 어플리케이션 실행
1. Hibernate: // drop
    drop table table_name if exists

2. Hibernate: // create
    create table table_name (
        ..., ..., ...
    )

// 어플리케이션 종료
3. Hibernate: // drop
    drop table table_name if exists

 

Update

  • 변경된 부분만 반영이 된다.
     - 클래스에 새로운 필드 추가 등등
  • 운영 DB에 사용하면 망한다.
Hibernate: 
    alter table tablename 
       add column column_name integer not null​

 

None

  • 데이터 베이스 스키마 자동생성 옵션을 사용하지 않는다.

 

2. SQL을 콘솔로 출력 하는 옵션들

show_sql

  • 모든 쿼리를 보여준다 DDL. DML 등
  • 한줄로만 출력되는 문제가 있다.

format_sql

  • 쿼리를 이쁘게 출력해준다.
  • 줄바꿈 들여쓰기 적용

use_sql_comments

  • 어떤 쿼리를 수행하는지 정보를 제공해준다.

type.descriptor.sql

  • 실제 어떤 값들이 사용되었는지 로그를 출력해준다.

 

3. Dialect 옵션

H2 : org.hibernate.dialect.H2Dialect 
Oracle 10g : org.hibernate.dialect.Oracle10gDialect 
MySQL : org.hibernate.dialect.MySQL5InnoDBDialect
  • JPA 는 특정 DB에 종속적이지 않다.
    - 즉 제공되는 DB에 한해서 어떤 DB든 사용할수 있다는 것이다.
  • Dialect 옵션으로 특정 DB를 지정해 줄수 있다.
  • Hibernate 는 40 가지 이상의 DB를 지원한다.

 

4.batch_size 속성

spring:
  jpa:
      properties:
          hibernate.jdbc.batch_size: 배치사이즈
  • JPA는 값이 변경이 되었다고 바로 DB 에 반영하지 않는다.
  • flush가 발생되어야 DB 에 sql 문을 날리게 된다.
    - 1차 캐시에 얼만큼 모았다가 DB에 반영(insert, update)할지 정한다. 
728x90
반응형

'DataBase > JPA' 카테고리의 다른 글

[QueryDSL] QueryDSL 설정 1 - QueryDsl 설정 적용  (0) 2024.11.24
[JPA] AttributeConverter  (0) 2022.04.02
[JPA] JPQL Named 쿼리  (0) 2021.09.28
[JPA] JPQL 엔티티 직접 사용  (0) 2021.09.28
[JPA] JPQL Fetch Join  (0) 2021.09.26

댓글