我使用的框架是hibernate Annotation,注解的方式,数据库使用的是oracle。在实体类里定义的主键生成策略是SEQUENCE,代码如下:
@GeneratedValue(strategy=GenerationType.SEQUENCE)但是用HQL语句每次插入一条数据,主键的起始值就是50,每插图一条就加50,快疯了,请问这么严重的跳号问题怎样解决?我建立序列的时候设置的其实这这些的根本不管用啊?create sequence hibernate_sequence
start with 1
minvalue 1
INCREMENT BY 1
NOMAXVALUE
NOCACHE ; 补充一句:我如果使用xml配置的方式就没有跳号问题,一用注解的方式就这样了,求教解决方法,谢谢~

解决方案 »

  1.   

    PS:我如果使用@GeneratedValue(strategy=GenerationType.AUTO)方式就不会产生跳号,按理说AOTU是自动匹配数据库,如果是oracle的话,那不还是用的SEQUENCE吗? 为啥AUTO就不跳号?
      

  2.   

    default allocation size is 50.你可以set allocationSize=1
      

  3.   

    你好:xqyky,请问你说的set allocationSize=1 是在哪里设置???创建序列的时候还是在hibernate配置文件里面???
      

  4.   

    哦~明白了,@SequenceGenerator(name="wen",sequenceName="ttt",allocationSize=1)已经搞定了,多谢你xqyky :) 分都给你了~:)