2014-10-30 64 views
0
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我打算。eclipse鏈接jpa序列跳轉

回答

0

序列並不意味着密集順序。這只是一個事實。解決您的問題的最佳解決方案是:忘掉它。序列生成的ID只不過是表示無意義的指針,即對象標識符,用於錶行引用。

如果您需要密集的連續編號(無論出於何種原因),您必須自己將其實施爲表中的單獨列。

無論如何,它可能是你在這裏處理序列的默認緩存。如果你想,嘗試建立你的序列如下:

create sequence SUBMISSION_SEQ 
    start with 1 
    INCREMENT BY 1 
    nocache; 

,但請注意,對於大數據量的操作數據插入的危害表現。