Невозможно сгенерировать обратный инжиниринг в Hibernate с помощью соединения Embedded Derby в IDE NetBeans. - PullRequest
0 голосов
/ 22 апреля 2020

Я использую embedded derby с Hibernate, но когда я пытаюсь сгенерировать Обратное проектирование после создания Hibernate.cfg.xml, я получаю следующую ошибку.

Cannot establish database connection with selected Hibernate Configuration file. Please verify the database connection details in hibernate.cfg.xml.

Из-за:

Caused by: ERROR XSDB8: Warning: Derby (instance a816c00e-0171-a746-cd67-000019e679e8) is attempting to boot the database may still be active. Only one instance of Derby should boot a database at a time.

Я подключаюсь Derby Embedded в NetBeans Services> окно для создания Hibernate.cfg.xml, но при выполнении мастера Hibernate Reverse Engineering оно снова подключается, но при этом он может успешно подключаться в
сервисах> в окне NetBeans IDE, получая:

Cannot establish database connection with selected Hibernate Configuration file. Please verify the database connection details in hibernate.cfg.xml.

, а также:

журнал содержит ERROR XSDB8:

Более того, даже я могу подключиться, используя DBeaver , хотя я сталкиваюсь с ERROR XSDB8:, так что не так только с Reverse Инженерный мастер?

Вот Hibernate.cfg.xml:

<hibernate-configuration>
        <session-factory>
            <property name="hibernate.dialect">org.hibernate.dialect.DerbyTenSevenDialect</property>
            <property name="hibernate.connection.driver_class">org.apache.derby.jdbc.EmbeddedDriver</property>
            <property name="hibernate.connection.url">jdbc:derby:clientieFX;create=true</property>
            <property name="hibernate.connection.username">app</property>
            <property name="hibernate.connection.password">app</property>
        </session-factory>
    </hibernate-configuration>

Может быть, это может быть достигнуто при настройке в Hibernate.cfg.xml.

Я также отключен Экземпляр программно использует

DriverManager.getConnection("jdbc:derby:;shutdown=true");

Это разъединяет соединение, но далее, когда я повторяю мастер Hibernate Reverse Engineering, оно все равно выдает ту же ошибку.

Так почему это вызывает ошибку, хотя есть ни один экземпляр больше не загружается?

Я использую NetBeans 11.0, BellSoft JDK 11.0.6+10-LTS, Hibernate 4.3.1.(now updated to 5.4.14) и Derby 10.15.2.0

1 Ответ

1 голос
/ 24 апреля 2020

Нет, пожалуйста, не просто удалите файл блокировки! По какой-то причине он защищает вас от случайного повреждения базы данных!

Вы правы, с помощью встроенной конфигурации Derby, только одна программа Java может одновременно открывать базу данных.

Самое простое решение - отключить первое соединение перед установкой следующего соединения. Это возможно для вас?

Существуют более сложные решения, такие как запуск сетевого сервера Derby вместо запуска Derby во встроенной конфигурации, но в целом я думаю, что вам следует выбрать самое простое решение, которое будет работать для ваш вариант использования.

Для получения более полной информации о файле db.lck: http://db.apache.org/derby/docs/10.15/devguide/cdevdvlp20458.html

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