9

我有许多单元测试,它们在内存中使用 Apache Derby。我的连接网址是:jdbc:derby:memory:srf.derby;create=true

我发现每次当一个方法标记为@Transactional完成时,我都会收到一个 Derby 警告

12:53:28:5328 [org.hibernate.util.JDBCExceptionReporter] [main] WARN  - SQL Warning: 10000, SQLState: 01J01
12:53:28:5328 [org.hibernate.util.JDBCExceptionReporter] [main] WARN  - Database 'memory:srf.derby' not created, connection made to existing database instead.

为什么?我做错了什么?

谢谢

4

1 回答 1

9

你没有做错什么。您每次都在传递 ';create=true',但数据库仅在您的程序第一次访问它时创建。由于它在内存中,因此数据库会一直挂起,直到您的程序退出,此时它就会消失。

您可以通过仅在测试套件中的第一个测试上传递 ';create=true' 来避免警告,然后后续测试不需要传递该值。

或者,您可以不担心警告。

于 2011-03-24T13:43:59.383 回答