🧐 Dialect란?
JPA의 주요 특징인 "데이터베이스에 종속적이지 않다"를 쓰기위해 hibernate.dialect 를 쓴다.
hibernate의 dialect로 데이터베이스 방언(언어, 사투리)을 설정할 수 있다.
서로 다른 데이터베이스 문법, 타입 등을 알아서 처리해주므로 개발자는 데이터베이스를 바꾸더라도 코드를 크게 바꾸지 않게 된다.
가변 문자 비교
MySQL : VARCHAR
Oracle : VARCHAR2
문자열 자르는 함수
SQL 표준 : SUBSTRING()
Oracle : SUBSTR()
이렇게 SQL 표준과 다르거나 특정 데이터베이스만의 고유 기능을 JPA에서는 방언(Dialect)라고 한다.
개발자는 JPA가 제공하는 표준 문법에 맞춰 사용하면 되므로, 특정 DB에 의존적인 SQL은 Dialect가 처리해준다.
DB가 변경되어도 코드를 변경할 필요없이 Dialect만 바꿔주면 된다.
🧐 그렇다면 어떻게 바꿀까?
하이버네이트는 다양한 데이터베이스 방언을 제공한다. 대표적으로 다음 3가지가 있다.
- H2 : org.hibernate.dialect.H2Dialect
- 오라클 10g : org.hibernate.dialect.Oracle10gDialect
- MySQL : org.hibernate.dialect.MySQL5InnoDBDialect
더 보고 싶다면 Hibernate ORM 공식문서를 참고하자
그래서 Maven 구조로 확인해보면 persistenc.xml파일에 있는 사진의 빨간색 부분을 참고하면 된다.
파란색 부분처럼 H2를 쓴다면 저렇게 쓰고, Oracle10g를 쓴다면 중간것을 주석풀고 나머지를 지우면 된다.
자바 ORM 표준 JPA 프로그래밍 / 김영한 지음 / 에이콘출판주식회사 출판
'Spring > JPA' 카테고리의 다른 글
EntityManagerFactory와 EntityManager (0) | 2022.02.18 |
---|---|
JPA 구동 방식 (0) | 2022.02.16 |
JPA 소개 #2 (0) | 2022.02.16 |
JPA 소개 #1 (0) | 2022.02.15 |
JPA 란? (0) | 2022.02.15 |