본문 바로가기
JPA

JPA hibernate dialect 설정

by meetyou 2025. 1. 22.

설정하기에 앞서 간단하게 JPA, hibernate, dialect에 대해 알아보겠다.

 

JPA란?

JAVA Persistence API의 약자로 자바에서 관계형데이터베이스를 사용하는 방식을 정의한 인터페이스라고 한다. 인터페이스라서 구조만 갖추고 있다.

 

hibernate란?

JPA를 구현한 impl이라고 보면 된다, 그래서 hibernate의 방식이 안맞다면, 다른 라이브러리를 선택해도 된다. 

 

dialect란?

데이터베이스 방언,

본인한테 맞는 DB를 선택하여 쿼리를 날릴때 도움을 준다.

DB도 mysql5, mysql8, orcle, H2 등등 다양하게 존재하는데 디비마다 사용되는 쿼리가 조금씩 다르다, dialect를 쓰면 사용하는 디비를 지정할 수 있다.

 

jpa에 hibernate를 쓰는데 dialect는 어떻게 설정해줄까?

application.yml 파일에서 jpa.database-platform 라는 부분을 찾을 수 있는데,

해당 부분에서 dialect를 설정해주면 된다,

ex) org.hibernate.dialect.MySQL8Dialect

 

But 하이버네이트마다 지원해주는 dialect가 각각 다른데, 확인하고 사용해야한다.

아래의 사이트에 접속해서 확인할 수있다.

https://docs.jboss.org/hibernate/orm/

 

1. 하이버네이트 6.2버전 이상인 경우 

버전 선택 후 /dialect 아래로 들어가면 확인할 수 있다.

 

2. 하이버네이트 6.1버전 이하인 경우

버전 선택 후 /XXguid 쪽에 찾아보면 확인할 수 있다.

 

필자는 mysql8버전이지만 하이버네이트는 버전이 낮아 MySQL5Dialect 을 사용하기로 결정함.

org.hibernate.dialect.MySQL8Dialect 

org.hibernate.dialect. MySQL5Dialect 

이런식으로 사용 하면 됨

 

물론 버전에 맞는 dialect를 쓰지 않으면 8의 기능을 완벽히 사용할 수 없으나, 큰 에러는 없어 지금은 유지하기로 했다.

추후에는 하이버네이트를 업그레이드 하여, 사용해볼 예정임.

 

** 스프링부트에 맞는 하이버네이트도 찾아야하는데, 스프링부트 공식문서에서 확인하길 바란다.

'JPA' 카테고리의 다른 글

JPA 준영속성, 영속성, merge, 변경감지  (0) 2023.08.07