반응형
JPA의 가장 큰 장점은 객체 매핑을 통해 자동으로 SQL 쿼리를 작성해 DB에 전달해준다.
그런데 DB의 종류는 한가지가 아닌 정말 다양한 DB의 벤더들이 있고 각 DB마다 SQL 문법이 다르다.
그럼 JPA는 어떻게 이 수많은 DB들에 우리가 사용하는 DB에 맞는 SQL을 작성하여 전달해줄까?
이 때 사용되는 것이 바로 "Dialect (방언)"이다.
dialect는 JPA 구현체(ex: hibernate)가 사용하는 SQL 방언을 추상화한 것으로, 각 DB마다 다른 SQL 문법을 처리해준다.
DB마다 맞은 SQL 언어를 JPA가 알아서 자동으로 인지하는 것이 아니라 다음과 같이 DB에 맞는 dialect를 설정해줘야한다.
application.yml
spring:
jpa:
properties:
hibernate:
dialect: org.hibernate.dialect.MySQL5InnoDBDialect
# dialect: org.hibernate.dialect.Oracle10gDialect
# dialect: org.hibernate.dialect.H2Dialect
# dialect: org.hibernate.dialect.PostgreSQLDialect
이렇게 자신이 사용하는 DB를 diaclect 옵션으로 설정하면 그 DB 문법에 맞는 SQL이 작성되어 전달된다.
'◼ JPA' 카테고리의 다른 글
[JPA] 엔티티 매핑 어노테이션과 속성 값 정리 (0) | 2023.06.05 |
---|---|
[JPA] 데이터베이스 초기화 전략 (ddl auto 옵션) (0) | 2023.06.04 |
[JPA] 내부 동작 방식 (feat. 영속성 컨텍스트란?) (0) | 2023.06.02 |
[JPA] QueryDSL이란? 그리고 설정 방법 (0) | 2023.04.24 |
[JPA] JPA란 ? 그리고 Spring Data JPA (0) | 2023.04.24 |