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' 카테고리의 다른 글
[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 |
[JPA] JPQL 경로표현식 (0) | 2021.09.26 |
댓글