#java #spring #spring-boot #derby
#java #весна #пружинный ботинок #derby
Вопрос:
У меня есть проект Spring Boot с Gradle, для которого я хочу использовать Derby. Здесь у меня есть следующие банки (мне понадобится только первая, но я пробую и вторую).:
implementation("org.apache.derby:derby:10.15.2.0")
implementation("org.apache.derby:derbyclient:10.15.2.0")
Это фактически дает мне 3 банки (включая инструменты), и ни у одной из них нет встроенного драйвера, который нужен Spring. Что это дает?
spring.datasource.url=jdbc:derby:/tmp/nhsta_derby;create=true
Property: driver-class-name
Value: org.apache.derby.jdbc.EmbeddedDriver
Origin: "driverClassName" from property source "source"
Reason: Failed to load driver class org.apache.derby.jdbc.EmbeddedDriver in either of HikariConfig class loader or Thread context classloader
Это ничего не находит:
find ~/.gradle/caches/ -name 'derby*.jar' -exec jar -tf {} ; | grep EmbeddedDriver
Комментарии:
1. Я скачал «db-derby-10.14.2.0-lib.zip » отсюда . Я распаковал его. Файл
derby.jar
содержит1952 Fri Apr 06 18:09:22 EDT 2018 org/apache/derby/jdbc/EmbeddedDriver.class
Ответ №1:
Spring Boot не поддерживает Derby 10.15, поскольку для него требуется Java 9 или более поздняя версия, а Spring Boot в настоящее время поддерживает Java 8 и более поздние версии. Если вы разрешите управлению зависимостями Spring Boot управлять версией (опуская версию при объявлении зависимости), вы будете использовать 10.14, где org.apache.derby:derby
модуль содержит ожидаемый EmbeddedDriver
класс:
implementation("org.apache.derby:derby")
Комментарии:
1. Для ясности, не требуется ли команда драйвера для встроенного или серверного режима, развернутого как приложение spring jpa?
2. Что вы подразумеваете под «командой драйвера»? Возможно, это лучше решить, задав новый вопрос, а не в комментариях к ответу.
Ответ №2:
Он org.apache.derby.jdbc.EmbeddedDriver.class
находится внутри implementation("org.apache.derby:derbytools:10.15.2.0")
.