我有许多单元测试,它们在内存中使用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.
为什么?我做错了什么?
谢谢
答案 0 :(得分:8)
你没有做错任何事。您每次都传递'; create = true',但数据库仅在程序第一次访问时创建。因为它在内存中,所以数据库会一直存在,直到你的程序退出,此时它就会消失。
您可以通过在测试套件中的第一个测试中传递'; create = true'来避免警告,然后后续测试不需要传递该值。
或者,您可以不用担心警告。