现在有一个需求,就是在建系的时候id必须只能是三位数字,也就是id必须为100~999 如果用Hibernate自动增加 怎样来限制主键的范围?还有我用的数据库是Oracle 如果在sequence中设定好了范围,如何在关键sequence与相应的id
  问题虽简单,但是本人初学Hibernate,希望会的朋友给予帮助 谢谢

解决方案 »

  1.   

    ---如何在关键sequence与相应的id?
    这句话看不明白。
      

  2.   

    Oracle不会,但是hibernate有个自动生成ID为sequence,就根据Oracle的sequence生成ID!一关联就行了,试试看吧
      

  3.   

     我觉得如果要这样做高效的话,可以在oracle中添加触发器,让主键按照你的思路去自增,oracle序列中可以设置初始和终止值,然后通过触发器来实现主键的生成。
      

  4.   

    建立一个序列  最小值和最大值 设定100和999 就OK 了 
    然后在程序中 id 的值用此序列来产生。
      

  5.   


    如何在关联sequence与相应的id?注解写法//指定序列 name 序列别名 sequenceName 序列名(数据库序列名) allocationSize 序列跨度
    @SequenceGenerator(name="SQ_MM_PURCHASE_PLAN",sequenceName="SQ_MM_PURCHASE_PLAN",allocationSize=1)//为ID指定生成器  strategy 类别 generator 指定序列名 就是上面的序列别名 
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SQ_MM_PURCHASE_PLAN")
    XML配置方式        <id name="id" type="java.lang.Long">
                <column name="ID" precision="14" scale="0" />
                <generator class="sequence">
                 <param name="sequence">SQ_AJ_LCJHXM</param>
                </generator>
            </id>