H2 полностью игнорирует IFEXISTS = false в jdbcUrl - PullRequest
1 голос
/ 20 июня 2019

У меня есть следующий код для запуска демона H2 и подключения к нему с помощью Hikari:

// Start H2 daemon
server = Server.createTcpServer("-tcpDaemon").start();

// Connect Hikari to H2 server
HikariConfig hkConfig = new HikariConfig();
    hkConfig.setDriverClassName("org.h2.Driver");
    hkConfig.setJdbcUrl("jdbc:h2:" + server.getURL() + "/./ghost;MODE=MySQL;IFEXISTS=false");
    ...

Однако, хотя IFEXISTS установлен в false в URL JDBC, я все еще получаю следующее исключение при инициализации пула:

org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database "C:/Users/Cole/IdeaProjects/ghost2/ghost" not found, and IFEXISTS=true, so we cant auto-create it

Я попытался соединить «нормальный» путь с DriverManager, но безрезультатно. Такое же исключение было брошено. Есть ли другой, работающий способ настройки функций H2, о которых я не знаю, или я делаю что-то не так?

1 Ответ

1 голос
/ 20 июня 2019

Это неправильно написанное сообщение об ошибке.Подробнее см. выпуск # 1894 .

Как ни странно, эта проблема не возникает в <= 1.4.197.Тот же самый точный код, размещенный выше, работает.Насколько я могу судить по <a href="https://github.com/h2database/h2database/issues/1766" rel="nofollow noreferrer"> # 1766 , это проблема безопасности, которая была исправлена.

...