gpt4 book ai didi

java - HSQL 中缺少用于测试的序列

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:34:48 26 4
gpt4 key购买 nike

我有一个 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

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

任何人对如何从日志中删除这个问题有任何想法吗?

谢谢

最佳答案

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

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

其中 sequences 是一个字符串列表,它是序列名称。

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

关于java - HSQL 中缺少用于测试的序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11780493/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com