Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.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 Spring数据JPA抛出重复键值违反了唯一约束_Java_Postgresql_Spring Data Jpa - Fatal编程技术网

Java Spring数据JPA抛出重复键值违反了唯一约束

Java Spring数据JPA抛出重复键值违反了唯一约束,java,postgresql,spring-data-jpa,Java,Postgresql,Spring Data Jpa,我正在我的应用程序中使用SpringDataJPA。从design开始,Spring数据的save()在DB中不存在元素时在DB中进行插入,并在给出该元素的主键时执行更新 本例中的问题发生在PK存在时。令我惊讶的是,有时我会被解雇 错误:重复的键值违反唯一约束 既然Spring数据在这种情况下应该进行更新,那么这怎么可能被抛出呢?还有其他人面临同样的问题吗?你是怎么修好的 编辑: 实体: @Entity @Table(name = "table_name") public class Entit

我正在我的应用程序中使用SpringDataJPA。从design开始,Spring数据的
save()
在DB中不存在元素时在DB中进行
插入
,并在给出该元素的主键时执行
更新

本例中的问题发生在PK存在时。令我惊讶的是,有时我会被解雇

错误:重复的键值违反唯一约束

既然Spring数据在这种情况下应该进行更新,那么这怎么可能被抛出呢?还有其他人面临同样的问题吗?你是怎么修好的

编辑:

实体:

@Entity
@Table(name = "table_name")
public class Entity {

  @Id
  @Type(type = "pg-uuid")
  private UUID id;
  @Column(name = "name")
  private String name;
  @Column(name = "surname")
  private String surname;
  ...
}

您能否提供一些代码来查看可能缺少的内容?也许这会有帮助:请更新您的问题以包含相关代码:实体定义,格式化为代码的完整堆栈跟踪。创建和保存两个实体的代码。回答当前的问题:您可能在非id列上有另一个唯一键。请检查我的更新。我没有提供代码,因为我认为它与问题无关,因为我只有几次遇到这个问题。通常情况下,更新可以正常工作。但有时我会遇到上述例外情况。@SBylemans谢谢你的回答,但对我的情况没有帮助。实体是正常的,更新在大多数情况下都有效。@NoahMartin但您没有在实体中指定id,如我发布的链接中所述。