我在上面使用代碼來生成ID:@SequenceGenerator與allocationSize> 1產生重複的主鍵
@Id
@GeneratedValue(generator = "seqq")
@SequenceGenerator(name = "seqq", sequenceName = "seqq", allocationSize = 20, initialValue = 1)
public long getId() {
return id;
}
我也更新的persistence.xml:
<property name="hibernate.id.new_generator_mappings" value="true"/>
和更新DDL在數據庫:
CREATE SEQUENCE seqq
INCREMENT 20
MINVALUE 1
MAXVALUE 9223372036854775807
START 9171
CACHE 1;
感謝這個allocationSize = 20與增量值相同。但是,我得到任意的錯誤,說重複的鍵值違反了唯一約束「myobjects_pkey」。通常在首次保存試用後發生此錯誤。 看來,休眠試圖堅持實體具有相同的ID。但是,START確保該行高於表id中存在的任何行。 如何消除重複的約束錯誤?