【发布时间】:2019-07-30 10:57:11
【问题描述】:
在将依赖项从 Spring 4.1.6.RELEASE 更新到 5.1.4.RELEASE 并将 Hibernate 4.3.9.Final 更新到 5.4.1.Final 之后,我的一些测试用例开始失败,主键上出现 ConstraintViolationException。
由于历史原因,我们像这样生成主节点:
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "NAME_HERE")
@TableGenerator(name = "NAME_HERE", table = "SEQUENCE_TABLE_NAME", pkColumnName = "Name", pkColumnValue = "ENTITY_NAME", valueColumnName = "VALUE_COLUMN_NAME", allocationSize = 100)
在正常使用应用程序时,它似乎没有问题,但是在运行测试时它会出现问题。
我注意到 ConstraintViolationException 仅发生在同一测试用例中插入多个值的表中。所以我认为这些行以某种方式分配了相同的主键。
在本地运行测试似乎不是问题,因此它也可能与测试在构建服务器上的运行方式有关。但是在升级依赖之前这不是问题。
我检查了序列值是否高于数据库中的最新值,但在升级依赖项之前这又不是问题。
我希望能唤起某人的记忆:-)
【问题讨论】:
标签: java spring oracle hibernate