Java 无法使用Hibernate更新记录
假设我在数据库中有两个带有以下字段的记录 1 A,A,A; 2b,B,B 所有字段的组合应该是唯一的。假设我正在尝试执行更新,以使我的记录如下所示: 1 B,B,B; 2 A,A,A 我正在使用Session.saveOrUpdate(entity)方法来执行此操作,但提交失败,主要是因为我尝试使用表示现有实体2的值更新实体1,并且唯一约束阻止了此更新 如何避免这种情况并正确更新 谢谢。您应该:Java 无法使用Hibernate更新记录,java,hibernate,persistence,Java,Hibernate,Persistence,假设我在数据库中有两个带有以下字段的记录 1 A,A,A; 2b,B,B 所有字段的组合应该是唯一的。假设我正在尝试执行更新,以使我的记录如下所示: 1 B,B,B; 2 A,A,A 我正在使用Session.saveOrUpdate(entity)方法来执行此操作,但提交失败,主要是因为我尝试使用表示现有实体2的值更新实体1,并且唯一约束阻止了此更新 如何避免这种情况并正确更新 谢谢。您应该: 启动会话和事务 载入你的两张唱片 更新这些记录的值 提交事务 在这种情况下不必使用saveOrU
- 启动会话和事务
- 载入你的两张唱片
- 更新这些记录的值
- 提交事务
在这种情况下不必使用saveOrUpdate,因为您只更新现有记录。Awesome,但是如果一次有7000个用户加载了10000条记录呢?还有其他方法吗?如果您有那么多并发更新,您需要仔细选择锁定策略。选项有悲观锁定(DB锁定行)、乐观锁定(如果另一个用户更新了同一行,则更新失败)、无锁定(上次提交获胜),。。。