create sequence SUBMISSION_SEQ
start with 1
INCREMENT BY 1;
@Entity
@Table(name = "SUBMISSION")
public class Submission {
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "submission_seq_gen")
@SequenceGenerator(name = "submission_seq_gen", sequenceName = "SUBMISSION_SEQ", initialValue = 1, allocationSize = 1)
@Column(name = "SUBMISSION_ID")
private Long id;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
序列号有时直接跳过10-12,有时它会正确地增加1,我打算。
答案 0 :(得分:0)
序列并不意味着密集连续。这只是一个事实。您问题的最佳解决方案是:忘记它。序列生成的ID只不过是用于表行引用的无意义的指针,对象标识符。
如果您需要密集的序列编号(无论出于何种原因),您必须自己将其作为表格中的单独列实现。
无论如何,您可能会在这里处理序列的默认缓存。如果需要,请尝试按如下方式设置序列:
create sequence SUBMISSION_SEQ
start with 1
INCREMENT BY 1
nocache;
但请注意,对于大量数据,会会损害数据插入的效果。