source

MySQL 8에서 동면 사투리를 사용하시겠습니까?

goodcode 2022. 9. 5. 22:57
반응형

MySQL 8에서 동면 사투리를 사용하시겠습니까?

MySQL 8에 Hibernate 사투리가 있나요?아니면 org.hibernate.dialect를 사용해야 하나요?하이버네이트와 함께 제공되는 MySQL57 Dialect?휴지 상태 5.2.16을 사용하고 있습니다.

MySQL8Dialect(org.hibernate.dialect).MySQL8Dialect)는 휴지 상태 번들 5.3.1로 제공됩니다.Final. 다음을 사용할 수 있습니다.

org.hibernate.dialect.MySQL8Dialect

예, MySQL8의 경우org.hibernate.dialect.MySQL8Dialect

Gradle(예: Gradle)을 사용하는 경우 다음 구성만 하면 됩니다.

application.yml의 경우

dataSource:
...
    driverClassName: com.mysql.cj.jdbc.Driver
    dialect: org.hibernate.dialect.MySQL8Dialect
....

build.gradle에서

dependencies {
    ...
    runtime 'mysql:mysql-connector-java:8.0.17'
    ...

mysql-connector 버전과 사용되지 않는 드라이버 클래스 이름에 주의하십시오.

spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL8Dialect
spring.jpa.properties.hibernate.dialect.storage_engine=innodb

여기서부터

이 질문이 2주 정도 된 것은 알지만, 완성도를 높이기 위해 Hibernate 5.3은 MySQL8 사투리를 사용하고 있는 것 같습니다.

https://docs.jboss.org/hibernate/orm/5.3/javadocs/org/hibernate/dialect/package-summary.html

사용한 적이 없기 때문에 품질에 대해서는 코멘트할 수 없지만, 서포트는 있는 것 같습니다.

예, MySql 8용 MySQL8Dialect.내 경우 스프링 부트 응용 프로그램에서 MySQL8 Dialect for MySql 8을 다음과 같이 사용하고 있습니다.

spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect  

MySQL 8의 릴리즈 노트를 보면, MySQL 8.x는 2018년 4월 19일(미만 1개월)부터 개발중이며, GA용으로 발매된 지 얼마 되지 않았기 때문에, 특별히 만들어진 사투리가 있는 것은 아닐까요.

여기에서는 모든 휴지 상태 사투리 목록을 볼 수 있으며, 보시는 것처럼 MySQL 8 사투리는 없습니다.

MySQLDialectMySQL 5 이전 버전에서만 사용해야 합니다.MySQL57Dialect현재는 MySQL 5.x 및 8.x에서 사용해야 합니다.

Spring Boot을 사용하는 경우

spring:
  jpa:
    hibernate:
      ddl-auto: update
    database-platform: org.hibernate.dialect.MySQL8Dialect

MySQL 8 Server를 설치할 때와 비슷한 쿼리를 받았고 Spring Boot Application을 사용하여 동일한 서버와 상호 작용하려고 했습니다.

하지만 나는 그렇게 할 수 없었다.

MySQL5Dialect 클래스의 Source Code를 살펴보니 문서에는 이 방언 클래스가 MySQL 5.X 버전 전용이라고 명시되어 있습니다.

MySQL 8.X 버전을 지원하는지 잘 모르겠습니다.

따라서 Hibernate에서 공식 사투리가 나올 때까지 MySQL 5.X를 사용하는 것이 좋습니다.

이 문제를 해결할 수 있었던 것은, 다음의 설정을 제 컴퓨터에 추가하는 것 뿐입니다.application.properties파일.

#Hibernate

spring.jpa.properties.hibernate.dialect= org.hibernate.dialect.MySQL8Dialect

spring.jpa.driverClassName= com.mysql.cj.jdbc.Driver 

언급URL : https://stackoverflow.com/questions/50322550/hibernate-dialect-for-mysql-8

반응형