我在我的项目中使用Spring Data,并在实体和表之间使用JPA进行映射, 这是我的实体
public class daoTable {
@Id
@SequenceGenerator(name = "seq_table_nc", sequenceName = "SEQ_TABLE_NC")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq_table_nc")
private Long id;
// setter && getter && outher params
}
这是我的仓库
public interface daoTable Repository extends JpaRepository<daoTable , Long>, JpaSpecificationExecutor<daoTable >{}
当我尝试保存时,出现此问题:
org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [GQAO.PK_RT]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement
java.sql.SQLIntegrityConstraintViolationException: ORA-00001: violation de contrainte unique
答案 0 :(得分:0)
如果数据库中已经有与SequenceGenerator
相同值的记录,就会发生这种情况。
例如,如果我保存1条记录而不使用此SequenceGenerator
(seq_table_nc
),然后将其添加到代码SequenceGenerator
(seq_table_nc
)中,然后尝试保存我将会得到您所拥有的异常,因为生成器可以给我的值等于我在数据库中已经拥有的值。
通常,您应检查尝试将哪个值保存在id
的DB中。之后,您必须查看如何更新数据库SequenceGenerator
,以便它开始生成唯一值。
祝你好运!