mysql序列,数据库本身支持自动递增,
oracl序列,数据库本身不支持递增,需要你去为pojo创建序列:
---------------------
CREATE SEQUENCE sequence //创建序列名称
[INCREMENT BY n] //递增的序列值是n 如果n是正数就递增,如果是负数就递减 默认是1
[START WITH n] //开始的值,递增默认是minvalue 递减是maxvalue
[{MAXVALUE n | NOMAXVALUE}] //最大值
[{MINVALUE n | NOMINVALUE}] //最小值
[{CYCLE | NOCYCLE}] //循环/不循环
[{CACHE n | NOCACHE}];//分配并存入到内存中
NEXTVAL 返回序列中下一个有效的值,任何用户都可以引用
CURRVAL 中存放序列的当前值
NEXTVAL 应在 CURRVAL 之前指定 ,二者应同时有效
---------------------------------
在执行insert命令时,hibernate会跟据数据库的不同,去采用不同的抢占主键id的方式,
对于oracl来说,hibernate会在insert命令执行后,先发出序列查询语句,抢占id,然后再发出insert的sql语句。
对于mysql来说,hibernate会在insert命令执行后,先发出insert的sql语句,去抢占自增长的id.