在内存中使用Apache Derby时出现警告

Pav*_*tam 9 derby in-memory

我有许多单元测试,它们在内存中使用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.
Run Code Online (Sandbox Code Playgroud)

为什么?我做错了什么?

谢谢

Bry*_*ton 8

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

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

或者,你可以不担心警告.

  • 确切地说,每次连接到已存在的Derby数据库时,使用包含"; create = true"的连接URL,您将收到警告.这不是因为它在内存中,而是因为它已经存在而你正在告诉Derby创建它. (3认同)