JPA는 특정 데이터베이스에 종속되어있지 않다
그래서 수 많은 DBMS가 있고 쿼리 작성도 조금씩 다르기때문에 사용하려는 데이터베이스를 JPA에게 알려줘야 JPA가 그에 맞게 해석할 수 있다.
즉 Dialect(방언) 설정을 해주어야한다.
먼저 Maven에서 설정 파일 기본 템플릿이다.
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
version="2.2">
<persistence-unit name="이름">
<properties>
<!-- 속성 설정 -->
</properties>
</persistence-unit>
</persistence>
JPA를 사용할 때 필수적으로 설정해야하는 정보는 다음과 같다.
H2 데이터베이스를 예시로 하겠다.
<property name="javax.persistence.jdbc.driver" value="org.h2.Driver"></property>
<property name="javax.persistence.jdbc.user" value="sa"></property>
<property name="javax.persistence.jdbc.password" value=""></property>
<property name="javax.persistence.jdbc.url" value="jdbc:h2:tcp://localhost/~/test"></property>
<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect">
</property>
<property
name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect">
</property>
spring.jpa.database-platform=org.hibernate.dialect.H2dialect
Dialect는 보통 데이터베이스 이름 + 버전으로 되어 있으며 본인 버전에 최대한 가까운 것을 선택하는 것을 추천한다.
H2 : org.hibernate.dialect.H2Dialect.
오라클 10g : org.hibernate.dialect.Oracle10gDialect.
MySQL : org.hibernate.dialect.MySQL55Dialect 5.5 버전
MySQL : org.hibernate.dialect.MySQL57Dialect 5.7 버전
MariaDB : org.hibernate.dialect.MariaDBDialect
만약 MariaDB 최신 버전의 기능을 추가로 사용하려면 다음 중 사용하려는 버전에 맞게 선택
MariaDB10Dialect
MariaDB53Dialect
MariaDB102Dialect
MariaDB103Dialect