hibernate注解插入数据,入库后的主键ID的值不是序列的值
而且每次重发布项目,主键ID的起始值会和上次不一样比如第一次发布项目,插入3条数据,入库后主键ID为:200000,200001,200002序列的值为:3789;第二次...
而且每次重发布项目,主键ID的起始值会和上次不一样
比如第一次发布项目,插入3条数据,入库后主键ID为:200000,200001,200002
序列的值为:3789;
第二次发布项目,插入3条数据,入库后主键ID为:4567,4568,4569
序列的值为:3789;
这是什么问题?
而且我也把类名上面的@SequenceGenerator注解放到ID字段上,
变化的只有序列跟着增长了,但是数据的ID还是和序列对不上
这是什么问题? 展开
比如第一次发布项目,插入3条数据,入库后主键ID为:200000,200001,200002
序列的值为:3789;
第二次发布项目,插入3条数据,入库后主键ID为:4567,4568,4569
序列的值为:3789;
这是什么问题?
而且我也把类名上面的@SequenceGenerator注解放到ID字段上,
变化的只有序列跟着增长了,但是数据的ID还是和序列对不上
这是什么问题? 展开
展开全部
在ORACLE数据库中的数据定义什么样的?
一般第二次发布的应该比第一次大,不该小,hibernate 会缓存,oracle也会缓存,会自动加上某个整数值。
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "PKGenerator")
@SequenceGenerator(name = "PKGenerator", sequenceName = "SEQ_UPLOAD_FILES")
一般第二次发布的应该比第一次大,不该小,hibernate 会缓存,oracle也会缓存,会自动加上某个整数值。
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "PKGenerator")
@SequenceGenerator(name = "PKGenerator", sequenceName = "SEQ_UPLOAD_FILES")
追问
主键ID是number
我记得有次特地测试的时候,第一次主键是8位的数字,第二次是3位的数字
关键是他们不安定义的序列的值跑啊
本来也没太关注,只到前几天有批数据插不进去,原因是主键冲突
表里面一看,id很乱,东有一点,西有一点的,完全无序,有的新数据的主键ID还比老的数据小!
以前用配置文件的,所以没问题
这次是第一次用注解,就碰到这个问题的说
追答
把项目中的其他无关的配置文件清理下试试,严重怀疑你的注解没起作用:)。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询