HSQL中缺少用于测试的序列

RNJ*_*RNJ 7 java database oracle spring hsqldb

我有一个Oracle数据库,我必须使用序列作为主键.这一切都很好,因为我可以控制序列号.我的问题是我的测试.使用Spring我创建一个HSQL数据库并对此进行测试.通过查看我的所有实体来构建此数据库.为了使用Oracle,我的所有实体都指定了一个序列名.麻烦的是,当我构造HSQL数据库时,它无法找到序列(我期望)我的测试通过但是我最终在日志中有很多错误.日志中充满了这些消息.

WARN JDBCExceptionReporter:233 - SQL Error: -5501, SQLState: 42501
ERROR JDBCExceptionReporter:234 - user lacks privilege or object not found: GENDERS_SEQ
Run Code Online (Sandbox Code Playgroud)

有谁知道如何删除这些虚假错误?我可以让HSQL忽略序列.有趣的是,在测试中我可以插入HSQL数据库,因此它必须使用自己的内部主键生成器.

有关如何从日志中删除此瑕疵的任何想法?

谢谢

RNJ*_*RNJ 3

我通过手动创建序列作为测试脚本的一部分解决了这个问题。不理想,因为我宁愿 Spring/HSQL 组合来设置它。我的代码是:

for (String sequence : sequences) {
    entityManager.createNativeQuery("DROP SEQUENCE " + sequence + " IF EXISTS").executeUpdate();
    entityManager.createNativeQuery("CREATE SEQUENCE " + sequence + " as INTEGER").executeUpdate();
}
Run Code Online (Sandbox Code Playgroud)

其中序列是序列名称的字符串列表。

我对每个测试类使用的是 @BeforeClass 方法。不太理想,但确实解决了问题