gpt4 book ai didi

java - hibernate auditions 为一个表中的多个插入生成相同的 rev id

转载 作者:行者123 更新时间:2023-11-30 11:12:10 24 4
gpt4 key购买 nike

我在 hibernate 版本 3.5 中使用 hibernate auditions。虽然当我尝试在一个事务中的一个表中插入单个记录时它工作正常但问题是当“BATCH”运行时并且它在单个事务中将多个记录插入一个表中,然后为审计表生成单个“rev id”,这会导致“integrityconstraintsviolation”。

因为 hibernate 的正常行为是所有插入查询都在 tansaction 结束时触发(当它刷新时),但此时只有一个查询被触发用于“rev id”生成。

 select hibernate_sequence.nextval from dual;

请告诉我这是审计中的错误还是我遗漏了什么??提前致谢

最佳答案

revid 总是跨越多个表中的修改!

是的,插入是在事务结束时调用的,但是:如果您使用乐观事务隔离,事务可以读取当前处于 Activity 状态但尚未提交的另一个事务的未提交状态。

如果您成为 integrityconstraintsviolation 列 rev_id 不幸配置为“唯一”。这是一个错误的数据库模式!通过删除 rev_id 列的唯一性来更正架构!

global-hibernate-relationtable 中的rev_id必须是唯一的,因为它是主键! (global-hibernate-relationtable 通常还包含一个时间戳)。

关于java - hibernate auditions 为一个表中的多个插入生成相同的 rev id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27040439/

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