Проблема в реализации MariaDB в Hibernate? - PullRequest
0 голосов
/ 08 апреля 2019

В настоящее время я реализую приложение, используя Hibernate, Spring Boot и MariaDB.Соединение с БД выглядит следующим образом:

application.yml ---------------------
spring:
  jpa:
    hibernate:
      ddl-auto: create-drop
      default_schema: mydb
  datasource:
    platform: mariadb
    driver-class-name: org.mariadb.jdbc.Driver
    url: jdbc:mariadb://localhost:3306/mydb
    username: mydb
    password: mysecretpassword
    initialization-mode: always

Объекты определены следующим образом:

MyObject.java ----------------------
@Entity
@Table(name = "my_object", schema = "otherdb")
public class MyObject {
...
}

Кроме того, я определил файл SQL, в котором я проверяю две используемые схемыСуществуют:

schema.sql ---------------------------
CREATE SCHEMA IF NOT EXISTS  mydb;
CREATE SCHEMA IF NOT EXISTS  otherdb;

Выполнение этого на HSQLDB в памяти работало отлично, я получил такие сообщения:

...
2019-03-29 13:23:24.978  INFO 15876 --- [           main] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
Hibernate: drop table otherdb.my_object if exists
...

Но когда я переключился на MariaDB в application.yml, я получилсообщения об ошибках вроде этого:

2019-03-29 14:27:09.166  INFO 2084 --- [           main] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect
Hibernate: drop table if exists my_object
2019-03-29 14:27:10.889  WARN 2084 --- [           main] o.h.t.s.i.ExceptionHandlerLoggedImpl     : GenerationTarget encountered exception accepting command : Error executing DDL "drop table if exists my_object" via JDBC Statement
org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "drop table if exists my_object" via JDBC Statement
...
Caused by: java.sql.SQLException: (conn=250) No database selected
    at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.get(ExceptionMapper.java:258) ~[mariadb-java-client-2.3.0.jar:na]
...
Caused by: java.sql.SQLException: No database selected
Query is: drop table if exists my_object
java thread: main
...

Обратите внимание, что имя схемы исчезло в команде SQL.С моей точки зрения, это вызывает проблему.

Есть ли способ исправить это?

Я уже сообщал об этой проблеме на веб-сайте hibernate некоторое время назад, но похоже, что онислишком занят, чтобы отвечать на вопросы пользователей / сообщения об ошибках ...: - (

https://discourse.hibernate.org/t/problem-in-mariadb-implementation/2531

Спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...