Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/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 如果对象已经存在于带有JPA的DB中,如何在保存操作失败_Java_Spring Boot_Jpa - Fatal编程技术网

Java 如果对象已经存在于带有JPA的DB中,如何在保存操作失败

Java 如果对象已经存在于带有JPA的DB中,如何在保存操作失败,java,spring-boot,jpa,Java,Spring Boot,Jpa,我正试图用JPA将一个对象保存到DB中。对象有两个属性年龄和电子邮件。电子邮件为@Id,类型为String 如果我试图用同一封电子邮件保存两个对象。最后一个对数据库进行更新 如何使最后一次保存失败 class Person { @Id @NotNull @Email private String email; private int age; } 不推荐你走的路 您可以使用下面这样的Person类,只在之前验证电子邮件 class Person {

我正试图用JPA将一个对象保存到DB中。对象有两个属性年龄和电子邮件。电子邮件为@Id,类型为String

如果我试图用同一封电子邮件保存两个对象。最后一个对数据库进行更新

如何使最后一次保存失败

class Person {


    @Id
    @NotNull
    @Email
    private String email;
    private int age;

}

不推荐你走的路

您可以使用下面这样的Person类,只在之前验证电子邮件

class Person {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id")
    private int id;

    @NotNull
    @Email
    @Column(unique=true) 
    private String email;

    private int age;
}

您可以显示您试图保存的方式吗?不要使用电子邮件字段作为标识符,而是添加额外的自动增量id列供系统使用,然后对电子邮件设置唯一约束。