hibernate oid 生成

 hibernate的对象标识符(OID)
       可以用<id>元素来设定OID,OID可以定义为short、int、long类型,默认情况下,hibernate生成持久类时,会将OID定义为Java包装类型。
用<id>元素中的<generator>子元素来设定标识符生成器。例如:
       <id type=”long” column=”ID”>
              <generator />
       </id>
       标识符生成器由net.sf.hibernate.id.IdentifierGenerator接口实现,在设置<generator>子元素的class属性时,可以写完整的名字,也可以写缩写名。例如,上例中的” increment”等同于”net.sf.hibernate.id.IncrementGenerator”。
       以下是几种hibernate提供的内置标识符生成器:
       1.increment
       适用于:所有的数据库系统;
                     只有单个hibernate进程访问同一个数据库的情况;
                     OID必须为short、int、long类型。
      2.identity
       适用于:支持自动增长字段的数据库系统;


                   OID必须为short、int、long类型。


       3.sequence


       序列定义方式和上面的例子有所不同:


       <id type=”long” column=”ID”>


              <generator >
                     <param >
              </ generator>


       </id>


       适用于:支持序列的数据库系统;


                     OID必须为short、int、long类型。


       4.hilo


       由hibernate按照high/low算法生成标识符,从数据库的指定表的字段中获取high值,生成后,在其他的单独事务中修改此值。


       定义方式:


       <id type=”long” column=”ID”>


              <generator >
                     <param >
                     <param >
                     <param >
              </ generator>


       </id>


       适用于:任何数据库系统;


                     OID必须为short、int、long类型。


       5.native


       根据底层数据库对自动生成标识符的支持能力,来选择使用identity、sequence、hilo。


       适用于:跨数据库平台的开发;


                     OID必须为short、int、long类型。


       6.uuid.hex


       由hibernate用UUID算法生成标识符。并不流行。


       7.assigned


       适用于自然主键。由Java应用程序生成标识符,应尽量避免
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值