티스토리 뷰
Dialect(방언)이란?
Dialect 방언에 대해 알아보기전 기본 SQL을 이해 해야 합니다.
SQL은 표준 ANCI SQL이 있고 DBMS Vendor(공급업체)인 MS-SQL, Oracle, My-SQL, Postgre SQL에서 제공하는 SQL이 존재합니다. MS-SQL은 T-SQL, Oracle은 PL/SQL이 대표적입니다.
ANSI SQL은 모든 DBMS에서 공통적으로 사용이 가능한 표준 SQL이지만 DBMS에서 만든 SQL은 자신들만의 독자적인 기능을 추가 하기 위해 만든 것으로 사용하는 DBMS에서만 사용이 가능합니다.
이해를 돕기 위해 예를 들면 MYSQL에서는 ID 값을 증가 시키기 위해 Auto Increment를 사용할 수 있지만 Oracle에서는 이 기능을 제공하지 않고 Sequence를 사용하여 기능을 제공합니다. 동일한 기능을 제공하지만 서로 다르게 제공하는 것이죠. 이는 같은 DBMS라도 버전에 따라 달라질 수 있습니다.
Dialect (방언)
JPA는 기본적으로 어플리케이션에서 직접 JDBC 레벨의 SQL을 작성하지 않고 JPA가 직접 SQL을 작성하고 실행합니다. 그런데 DBMS 종류마다 사용하는 SQL이 다르다는 것을 우리는 앞에서 알아봤습니다. JPA가 해당 DBMS에 맞춰 SQL을 생성해야하는데 어떤 종류인지 알지 못한다면 문제가 발생 할 수 있습니다.
그래서 JPA에 어떤 DBMS를 사용하는 알려주는 방법이 방언을 설정하는 방법입니다. JPA에 Dialect를 설정할 수 있는 추상화 방언 클래스를 제공하고 설정된 방언으로 각 DBMS에 맞는 구현체를 제공합니다.
그래서 만약, MariaDB로 개발을 진행하면 Dialect에 MariaDB로 설정해 놓다가 어플리케이션을 설치할때 DBMS가 Oracle 이라면 Dialect을 Oralce로 설정하면 문제 없이 어플리케이션을 구동 할 수 있습니다.
MariaDB 10.3 버전 사용시
database-platform: org.hibernate.dialect.MariaDB103Dialect
Oracle 11g 버전 사용시
database-platform: org.hibernate.dialect.Oracle10gDialect
하이버네이트 Dialect 설정과 종류
Spring Boot에서 Dialect를 설정은 아래와 같이 할 수 있습니다.
spring: jpa: hibernate: database-platform: org.hibernate.dialect.MariaDB103Dialect
Spring Boot의 Dialect를 설정하기 위해서 hibernate 버전을 먼저 확인하는 것이 필요합니다.
Spring Boot의 버전마다 사용하는 hibernate 버전이 다르기 때문에 아래와 같이 확인하세요.
Spring-Boot 2.1 버전에서는 hibernate 5.3.X 버전을 사용합니다.
https://docs.spring.io/spring-boot/docs/2.1.5.RELEASE/reference/html/appendix-dependency-versions.html
Spring-Boot 2.2 버전부터는 hibernate 5.4.6.Final을 사용합니다.
https://docs.spring.io/spring-boot/docs/2.2.0.RELEASE/reference/html/appendix-dependency-versions.html
Spring-Boot 2.1을 사용한다면 방언은 아래를 참고하시면 됩니다.
https://docs.jboss.org/hibernate/orm/5.3/javadocs/org/hibernate/dialect/package-summary.html
Spring-Boot 2.2을 사용하신다면 아래를 참고하시면 됩니다.
https://docs.jboss.org/hibernate/orm/5.4/javadocs/org/hibernate/dialect/package-summary.html
TIP : Oracle 11g의 경우에는 Oracle 10g를 사용하면 됩니다.
'BackEnd > SpringBoot' 카테고리의 다른 글
[Spring Boot] Firebase 연동 방법. (1) | 2021.06.20 |
---|---|
[Spring Boot] Service, Component Autowired 필드 주입을 생성자 주입으로 변경하기. (0) | 2020.02.02 |
- Total
- Today
- Yesterday
- Python
- Component
- LeetCode 5월 챌린지
- LeetCode 풀이
- numpy
- 퍼셉트론
- git
- 머신러닝
- vscode
- Java leetcode
- 넘파이
- 노드
- LeetCode 30일 챌린지
- react
- 30 Day LeetCode Challenge
- GPTGOT
- 리엑트
- GPT서비스
- k8s metrics-server
- 지도학습
- Java
- 에라토스테네스
- Node
- React 프로젝트 생성
- 파이썬
- 파이썬 numpy
- CHATGOT
- k8s metrics-server running
- LeetCode 알고리즘 공부
- 버츄얼스튜디오코드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |