Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法使用Hibernate更新记录_Java_Hibernate_Persistence - Fatal编程技术网

Java 无法使用Hibernate更新记录

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

假设我在数据库中有两个带有以下字段的记录

1 A,A,A; 2b,B,B

所有字段的组合应该是唯一的。假设我正在尝试执行更新,以使我的记录如下所示:

1 B,B,B; 2 A,A,A

我正在使用Session.saveOrUpdate(entity)方法来执行此操作,但提交失败,主要是因为我尝试使用表示现有实体2的值更新实体1,并且唯一约束阻止了此更新

如何避免这种情况并正确更新

谢谢。

您应该:

  • 启动会话和事务
  • 载入你的两张唱片
  • 更新这些记录的值
  • 提交事务

在这种情况下不必使用saveOrUpdate,因为您只更新现有记录。

Awesome,但是如果一次有7000个用户加载了10000条记录呢?还有其他方法吗?如果您有那么多并发更新,您需要仔细选择锁定策略。选项有悲观锁定(DB锁定行)、乐观锁定(如果另一个用户更新了同一行,则更新失败)、无锁定(上次提交获胜),。。。