oracle 在hibernate中的主键映射

在MSSQL、MYSQL可以使用native作为自增主键生成策略。native就是将主键的生成工作交由数据库完成,hibernate不管。但在ORACLE中不能用,ORACLE中本身不提供主键递增生成策略,通过索引和触发器实现主键递增。如果在Hibernate主键生成策略中使用native会出现找不到sequence,使用increment同样不可以,increment不可以使用在集群环境,identity只适用于MSSQL和MYSQL中,同样使用uuid也不可以,只能使用 seq_somename 。但是这样做 我发现 hibernate会取得一次sequence, 同时数据库还有一个triger会取得一次sequence, 这样实际的sequence会加2了!! 而且create返回的对象的主键id也是错误的, 因为还被triger加了1, 数据库里面的记录全面是双数, 2,4,6,8 create返回主键却是1,3,5,7,但对整个系统没有大的影响。 用native作为Hibernate主键映射策略,可移植性强适合各种类型的数据库,native就是将主键的生成工作交由数据库完成,hibernate不管。对于Oracle数据库要使用native作为Hibernate主键映射策略,与其它数据有所不同,一定要建立一个全局的序列sequence,而且这个sequence名唯一hibernate_sequence,这是hibernate默认的序列名称,不能更改。 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/kfy123456/archive/2008/06/03/2506264.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值