在Hibernate中使用oracle的sequence产生主键

原创 2006年06月06日 11:01:00
在Hibernate中使用oracle的sequence产生主键

      在很多情况下,我们使用Hibernate在已经建立好数据库的基础上。在oracle中,如果已经建立好的数据库中使用了sequence,则可以按照下面的步骤把它引入到Hibernate中:
   
   1、在oracle 首先创建sequence

      
create sequence seq_id
      minvalue 1
      start with 1
      increment by 1
      cache 20;

   2.在你的hbm.xml中的配置
   
     <id column="ID0000" name="id" type="integer">
         <generator class="sequence">
              <param name="sequence">seq_id</param>
         </generator>
     </id>

   这样再插入数据的时候,Hibernate回自动生成如下语句:
   
   hibernate: select seq_id.nextval from dual

   hibernate:  insert into YXJK.T_YXJK_WHRYTXL (XM0000, ZW0000, LXDH00, SJHM00, DZYJ00,   
                    IP0000,     ID0000) values (?, ?, ?, ?, ?, ?, ?)

   自动生成下一个序列值,然后将对象插入表中。
   在使用的时候需要注意,Hibernate对于sequence的主键的要求是一定要是shor,long,或者integer

关于Hibernate的oracle主键id生成策略uuid、native和sequence

1.uuid是产生一个32位的字符串,所以在数据库主键字段的大小上必须要大于等于32位。另外如果之前在库表设置了触发器和sequence,那么即使是采用uuid主键生成策略,那么hibernate在做...
  • u011301815
  • u011301815
  • 2016年09月08日 23:30
  • 976

Hibernate Oracle sequence的使用技巧

一、为表创建自增长自段有两种,一种是不同的表使用各自的Sequence,方法如下:   1、在Oracle sequence首先创建sequence   create sequence seq...
  • pf1234321
  • pf1234321
  • 2014年11月17日 23:42
  • 963

Oracle 主键自增 Native Sequence两种方式

在hibernate中实现oracle的自动增长 http://kuangbaoxu.javaeye.com/blog/192434 关键字: hibernate oracle seq...
  • hongshan50
  • hongshan50
  • 2012年05月10日 16:09
  • 6501

hibernate注解方式用sequence生成主键

注:我是在postgre数据库中做的测试
  • yanlianglu
  • yanlianglu
  • 2014年03月31日 17:43
  • 1104

Hibernate注解映射sequence时出现无序增长问题+hibernate 映射 oracle ID自动增长

通过Hibernate注解的方式映射oracel数据库的sequence主键生成器时,出现增加数据时sequence无序增长的问题,配置如下 @SequenceGenerator(name = "S...
  • m13666368773
  • m13666368773
  • 2011年08月22日 13:53
  • 7532

hibernate操作oracle数据库 主键自增

本篇文章基于http://blog.sina.com.cn/s/blog_6785747b0101blop.html 相信使用过mysql,sql server,oracle的朋友都知道,oracle...
  • thepeakofmountain
  • thepeakofmountain
  • 2013年12月06日 21:39
  • 3578

用oracle的trigger生成主键的时候和hibernate冲突的讨论

oracle的trigger和hibernate冲突 capitain write:我们的数据库定义mapping使用了 seq_somename 但是这样做 我发现 hi...
  • dazern
  • dazern
  • 2005年06月04日 17:11
  • 1575

guid跟sequence做主键的比较

转自:http://spiritfrog.iteye.com/blog/245816 今天上班,发现一个同事用oracle的sys_guid()来做从一个表中随机获取6条记录: select * ...
  • dreamgis
  • dreamgis
  • 2013年10月22日 13:53
  • 1242

【5】Hibernate的主键生成策略

1、表中主键分类: (1)自然主键:建表的时候,使用对象中本身的属性作为表的主键。 (2)代理主键:没有使用对象中的自身的属性作为表中的主键,使用和对象不相关的属性作为主键。 注:在建表的时候,...
  • lwt976647637
  • lwt976647637
  • 2016年11月26日 15:57
  • 596

hibernate中使用oracle的序列作为主键问题

@Id @SequenceGenerator(name="gen",sequenceName="SEQ_ORDER_MAIN" ) @GeneratedValue(strategy=G...
  • u014727260
  • u014727260
  • 2017年11月22日 12:52
  • 93
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在Hibernate中使用oracle的sequence产生主键
举报原因:
原因补充:

(最多只允许输入30个字)