ORA-00001:违反唯一约束

时间:2019-07-12 07:44:24

标签: java sql jpa

我知道,关于同一问题的文章很多,但仍然无法弄清楚为什么我的代码会抛出上述异常。

我正在使用JPA进行数据库连接。

我有以下实体:

 /**
 * Primary key.
 */
@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_REGISTRATION")
@SequenceGenerator(name = "SEQ_REGISTRATION", sequenceName = "SEQ_REGISTRATION")
private Long id;

据我所知,对于序列生成器,默认值为50。

然后按如下所示创建数据库表序列:

--------------------------------------------------------
sequence for table REGISTRATION
--------------------------------------------------------
CREATE SEQUENCE "SEQ_REGISTRATION" MINVALUE 1 MAXVALUE 
9999999999999999999999999999 INCREMENT BY 50 START WITH 1 CACHE 20 NOORDER 
NOCYCLE;

我还尝试将incrementy_by值设置为较大,但这没有帮助。

为什么我会不断收到违规违规行为?

提前谢谢!

1 个答案:

答案 0 :(得分:2)

违反唯一约束将意味着您已经在数据库中拥有现有记录,并且该序列已配置为生成已经使用的数字,因为它从1开始计数。

您需要将“开始于”调整为至少比当前数据库中的最大值高一个。