eclipse链接jpa序列跳转

时间:2014-10-30 09:16:59

标签: jpa oracle11g eclipselink

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,我打算。

1 个答案:

答案 0 :(得分:0)

序列并不意味着密集连续。这只是一个事实。您问题的最佳解决方案是:忘记它。序列生成的ID只不过是用于表行引用的无意义的指针,对象标识符。

如果您需要密集的序列编号(无论出于何种原因),您必须自己将其作为表格中的单独列实现。

无论如何,您可能会在这里处理序列的默认缓存。如果需要,请尝试按如下方式设置序列:

create sequence SUBMISSION_SEQ
  start with 1
  INCREMENT BY 1
  nocache;

但请注意,对于大量数据,会损害数据插入的效果。