최대 1 분 소요

Dialect 란?

SQL에는 기본적으로 표준 SQL인 ANIS SQL이 있으며 ANIS SQL 이외에 각 DBMS Vendor(벤더, 공급업체)인 MS-SQL, Oracle, MySQL, PostgreSQL 에서 자신만의 기능을 추가한 SQL이 있다.

img1

예를 들면 MS-SQL의 T-SQL, Oracle의 PL/SQL이 대표적이다. 이런 각 SQL은 약간씩 사용 방법이 다르다. MySQL의 경우 기본키를 할당할때 AUTO_INCREMENT 라는 기능이 있고 Oracle에는 SEQUENCE라는 기능이 있다.

한마디로 ANIS SQL이 서울 표준말이고 다른 SQL들은 여러 지방에서 사용하는 방언이라고 표현할 수 있다.

JPA는 애플리케이션에서 직접 JDBC 레벨의 SQL을 작성하지 않고 JPA가 직접 SQL을 작성하고 실행하는 형태이다. 그런데 위에서 알 수 있듯 DBMS마다 SQL 문법이 다르므로 종류에 맞게 사용할 필요가 있다.

JPA에서는 이를 Dialect라는 추상화 방언 클래스를 제공하고 각 벤더에 맞는 구현체를 제공한다.

img2

JPA에서는 설정을 통해 원하는 Dialect만 설정해주면 해당 Dialect를 참고하여 그에 맞는 쿼리를 생성한다.

태그:

카테고리:

업데이트:

댓글남기기