springjpa处理唯一约束冲突

x4shl7ld  于 2021-07-14  发布在  Java
关注(0)|答案(1)|浏览(711)

这个问题在这里已经有答案了

使用jpa防止唯一约束冲突的最佳方法(3个答案)
两个月前关门了。
我有一个实体,比如说雇员

@Entity
public class Employee {
    @Id
    private Long id;
    private String name;
    ....
}

具有字段名的被标记为唯一。
要保存员工列表,我使用 saveAll() jparepository的功能。当有一个员工 name 在数据库中表示唯一约束( name )已经被侵犯了。
我想处理的是我可以忽略或更新这个员工?有一个想法是,在拯救任何员工之前,我必须先检查一下,比如 findByName() 但是通过这样做,当批量很大时,它会使工作加倍,而且非常不方便。
这是错误日志:

org.springframework.dao.DataIntegrityViolationException: could not execute batch; 
SQL......at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccess
Exception(HibernateJpaDialect.java:298)......
Caused by: org.hibernate.exception.ConstraintViolationException: could not execute batch......
Caused by: java.sql.BatchUpdateException: ORA-00001: unique constraint (SILKGATE_TEST.SYS_C00100705) violated.....

提前谢谢

0dxa2lsx

0dxa2lsx1#

您可以使用unique=true。

@Entity
public class Employee {
    @Id
    private Long id;

    @Column(nullable = false, unique = true)
    private String name;
    ....
}

相关问题