Jpa中关于@SequenceGenerator序列生成主键然后persist到数据库中的问题

先上oracle中的sequence定义:createsequenceBI.SEQ_RYIDminvalue1maxvalue99999999startwith10002... 先上oracle中的sequence定义:
create sequence BI.SEQ_RYID
minvalue 1
maxvalue 99999999
start with 10002156
increment by 20
cache 20
cycle;
这里,增量为20;
然后是java对象主键定义:
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="ryidGen")
@SequenceGenerator(name="ryidGen",sequenceName="bi.seq_ryid",allocationSize=30)
这是主键定义,增量定义为30.之后调用实体管理器,新增一个实体,然后将该该实体persist到数据库中,结果数据库中的sequence就变成了:
create sequence BI.SEQ_RYID
minvalue 1
maxvalue 99999999
start with 10002156
increment by 30
cache 20
cycle;
这种情况是怎么形成的,以及应该如何避免,就解释!!
展开
 我来答
liaowuhen1111
2014-03-05 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:73
采纳率:0%
帮助的人:73.8万
展开全部
allocationSize 参数与数据库的序列参数不同时,会覆盖掉的
追问
那怎么防止呢?除了自己设定allocationSize属性以外。allocationSize属性不设置也会覆盖,因为默认为50
追答
除了设置allocationSize与数据库同样外,这种注解主键生成方式都会以注解为主的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式