【发布时间】:2016-04-06 12:21:51
【问题描述】:
我正在使用 Hibernate 4.2.21 Final 来生成我使用的 ID:strategy=GenerationType.SEQUENCE
@Id
@SequenceGenerator(name = "ApplicationSequence", sequenceName =
"application_seq", allocationSize=1)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="ApplicationSequence")
@Column(name = "application_id", unique = true, nullable = false) private Long id;
我的问题是关于为什么 Hibernate 以随机方式生成我的 ID ...
如 1、2、3、67、89、96 等...
当我的 allocationSize = 1 时?应该是这样的:1,2,3,4,5,6。
编辑: ORACLE 12 中的安全性
CREATE SEQUENCE "OSYDBA"."APPLICATION_SEQ"
MINVALUE 1 MAXVALUE 9999999999999999999999999999
INCREMENT BY 1 START WITH 1
CACHE 20 NOORDER NOCYCLE NOPARTITION ;
【问题讨论】:
-
你是如何在 oracle 端生成序列的?
-
是的,你可以在我最初的帖子中找到它,在 EDIT 中
-
您是否对任何其他实体使用相同的序列?
-
真的有问题吗?这是与性能要求进行权衡的结果。您不能拥有并发、快速、无间隙的序列生成器。
-
@ibre5041 如果多个实体使用相同的序列,则表中插入的行可能不按顺序。
标签: java oracle hibernate oracle11g