🌱 SPRING/JPA
[JPA] Dialect(방언)
1HOON
2020. 6. 6. 18:01
세상엔 많은 데이터베이스 제품이 존재하고, 각각의 제품은 표준 SQL(ANSI SQL)을 제외한 독자적인 기능을 위한 SQL도 존재한다.
- SQL Server : ANSI SQL + T-SQL
- Oracle : ANSI SQL + PL/SQL
- 기타 등등...
그리고 각각의 데이터베이스에서 제공하는 문법과 함수가 차이가 있다.
- 가변문자 : VARCHAR(MySQL), VARCHAR2(Oracle), NVARCHAR(SQL Server)
- 문자열 자르는 함수 : SUBSTRING(표준 SQL), SUBSTR(Oracle)
- 페이징 : LIMIT(MySQL), ROWNUM(Oracle)
이러한 차이를 방언(Dialect)라고 하며, JPA에서는 추상화된 방언 클래스를 제공한다. JPA를 사용하지 않으면 애플리케이션의 DBMS가 변경될 경우 혹은 같은 애플리케이션을 다른 DBMS에서 동작시켜야하는 경우 기존에 작성된 SQL을 모두 수정해야하지만, JPA를 사용하면 이 Dialect 덕분에 그러한 시간과 비용을 아낄 수 있다.
DBMS별 hibernate Dialect 설정 방법은 persistence.xml 파일에서 hibernate.dialect 설정 값을 변경해주면 된다.
- H2 : org.hibernate.dialect.H2Dialect
- Oracle 10g : org.hibernate.dialect.Oralce10gDialect
- MySQL : org.hibernate.dialect.MySQL5InnoDBDialect
- MariaDB : org.hibernate.dialect.MariaDBDialect
출처 :: 인프런 강의(자바 ORM 표준 JPA 프로그래밍 - 기본편)
반응형