在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

posted on 2005-03-23 10:30 Find it, try it, experience it 阅读(6377) 评论(4)  编辑  收藏

评论

# re: 在Hibernate中使用oracle的sequence产生主键 2006-08-16 17:51 马学军

dual这张表
也必须大映射吧?
  回复  更多评论   

# re: 在Hibernate中使用oracle的sequence产生主键 2006-08-16 17:52 马学军

dual这张表
也必须的映射吧?   回复  更多评论   

# re: 在Hibernate中使用oracle的sequence产生主键 2006-08-25 15:28 ramon

@马学军
完全不需要。  回复  更多评论   

# re: 在Hibernate中使用oracle的sequence产生主键 2013-07-07 09:33 王永强

那么多个表是使用一个sequence好,还是使用多个好,有什么区别吗?  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 
<2005年3月>
272812345
6789101112
13141516171819
20212223242526
272829303112
3456789

导航

统计

公告

If there is any question you have, please don't hesitate, let me know ASAP, you can find me at kenees@gmail.com or QQ: 9808873, hope to make friends with you ;)

常用链接

留言簿(1)

随笔档案

文章档案

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜