我配置了休眠使用oracle序列。序列創建緩存= 20,增量= 1。休眠與Oracle序列不使用它
所有的工作正常,休眠持久實體。該ID值是奇怪的:50,51 .... 76,201,202 ... 209,1008,1009,5129,5130 ....
如果我問序列值(從雙選擇hibernate_sequence.nextval)我得到值如2,3,4 ....
如果我打開hibernate sql調試,有時間調用「從雙選擇hibernate_sequence.nextval」,但由休眠分配的ID號不會按順序中繼!
@Id
@Column(name = "ID", insertable = false, updatable = false)
@SequenceGenerator(name = "SequenceIdGenerator", sequenceName = "HIBERNATE_SEQUENCE")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SequenceIdGenerator")
private Long id;
你不必每次增加50。這只是默認設置。使用 @SequenceGenerator(name =「SEQ_ID」,sequenceName =「SEQ_ID」,allocationSize = 1) 僅增加一個。分配大小是關鍵。 – dseibert
反正有沒有用這個? 既然它對我來說是一個很大的問題,讓其他觸發器對這個表使用相同的序列。那麼他們將來可能會打這個數字,對吧? –
看看你上面的評論。使用allocationSize。 –