hibernate oracle 配置序列 实现自动增长

    以前开发一直在用MSSQL,MYSQL 没有用过 oracle,现在有后发现ID没有自动增长的功能,MSSQL,MYSQL在这方面方便,只用一个关键字可以设置了,但 oracle还要绕一个大圈,又要在 oracle中先写序列,而且每个表都要创建一个序列,还要用触发器中调用序列或在程序中配置调用序列。呵呵。下面来说一下oracle与hibernate中实现ID的自动增长。

   1、先创建序列:

     CREATE SEQUENCE myseq --创建序列,名为:myseq

     START WITH 1 --从1开始

     MAXVALUE 999999999 --最大值

     INCREMENT BY 1 --每次递增 1

     ORDER --排序

     NOCYCLE; --避免重新开始,关闭循环 

  2、hibernate 配置

      2.1、 hibernate 注释配置      

 2         private  Integer id;
 3        @Id
 4        @GeneratedValue(strategy = GenerationType.SEQUENCE,generator = " myseq_test " )  
 5        @SequenceGenerator(name = " myseq_test " ,sequenceName = " myseq " ,allocationSize = 1 )  
 6         public  Integer getId() {
 7             return  id;
 8        }
 9         public   void  setId(Integer id) {
10             this .id  =  id;
11        }

 

 

              注:其中 myseq 为序列名称,myseq_test 为myseq 别名。allocationSize要注意:我参考官方文档配置,但是官方文档没有配置这个属性,导致我的序列默认不是按照1递增的,

加上就可以了。

      2.2、 hibernate xml配置,在你的hbm.xml中配置

                

2    < id column = " ID "  name = " id "  type = " integer " >
3             < generator  class = " sequence " >
4                  < param name = " sequence " > seq_id </ param >
5             </ generator >
6    </ id >

 

 

     

   

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值