Oracle与Hibernate主键映射策略
2008-06-03 09:24
274 查看
在MSSQL、MYSQL可以使用native作为自增主键生成策略。native就是将主键的生成工作交由数据库完成,hibernate不管。但在ORACLE中不能用,ORACLE中本身不提供主键递增生成策略,通过索引和触发器实现主键递增。如果在Hibernate主键生成策略中使用native会出现找不到sequence,使用increment同样不可以,increment不可以使用在集群环境,identity只适用于MSSQL和MYSQL中,同样使用uuid也不可以,只能使用<generator class="sequence"> <param name="sequence">seq_somename</param> </generator>。但是这样做 我发现 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默认的序列名称,不能更改。
用native作为Hibernate主键映射策略,可移植性强适合各种类型的数据库,native就是将主键的生成工作交由数据库完成,hibernate不管。对于Oracle数据库要使用native作为Hibernate主键映射策略,与其它数据有所不同,一定要建立一个全局的序列sequence,而且这个sequence名唯一hibernate_sequence,这是hibernate默认的序列名称,不能更改。
相关文章推荐
- Hibernate-主键映射之主键生成策略
- [JAVAWEB实战篇]---在hibernate中实现oracle的主键自增策略
- hibernate 配置Oracle主键生成策略
- Hibernate实战_笔记24(主键生成策略、类映射选项)
- Hibernate 主键维护策略和hibernate 常见的映射类型
- 在hibernate中实现oracle的主键自增策略
- Hibernate 表映射 主键生成策略与复合主键
- 关于Hibernate的oracle主键id生成策略uuid、native和sequence
- 在hibernate中实现oracle的主键自增策略
- Oracle: hibernate 的主键生成策略
- 关于Hibernate的oracle主键id生成策略uuid、native和sequence
- 在hibernate中实现oracle的主键自增策略
- Hibernate面试题 --- Hibernate主键的生成策略(Oracle数据运用那种主键生成策略)
- oracle 在hibernate中的主键映射
- 关于Hibernate的oracle主键id生成策略uuid、native和sequence .
- Hibernate 学习笔记-1-3(Hibernate的基本映射以及几种主键生成策略的测试)
- SS5.1_Hibernate_IdStrategyXML ~ SS5.5_Hibernate_IdStrategyXML 主键生成策略 XML映射文件的方式
- 新手上路之Hibernate(二):基本映射以及一些原则与主键生成策略
- hibernate生成实体时对应的映射文件中主键的生成策略
- hibernate + oracle 映射主键问题