我知道,关于同一问题的文章很多,但仍然无法弄清楚为什么我的代码会抛出上述异常。
我正在使用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值设置为较大,但这没有帮助。
为什么我会不断收到违规违规行为?
提前谢谢!
答案 0 :(得分:2)
违反唯一约束将意味着您已经在数据库中拥有现有记录,并且该序列已配置为生成已经使用的数字,因为它从1开始计数。
您需要将“开始于”调整为至少比当前数据库中的最大值高一个。