我用的是 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:
又何妨 逆向工程神器?
这里是 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
不,请不要直接删除锁文件! 它的存在是有原因的,它是为了保护你的数据库不被意外破坏。
你说的没错,在Derby的嵌入式配置下,一次只能有一个Java程序打开数据库。
最简单的解决方案是在进行下一个连接之前关闭第一个连接。你能做到吗?
有一些更复杂的解决方案,例如运行Derby网络服务器,而不是在Embedded配置中运行Derby,但一般来说,我认为你应该选择最简单的解决方案,这将适用于你的用例。
有关db.lck文件的更多完整信息。http:/db.apache.orgderbydocs10.15devguidecdevdvlp20458.html。