新的起點

          新的起點
          隨筆 - 9, 文章 - 1, 評論 - 1, 引用 - 0
          數據加載中……

          在Hibernate中使用oracle的sequence產生主鍵

              剛剛接觸Hibernate不長時間,今天想動手做一個小例子,數據庫使用的是Oracle。打算使用Oracle中的序列作為表的主鍵,卻不知道使用Hibernate如何與其關聯在一起。請教同事,被告知要使用諸如select語句進行查詢“select   sequence.nextval   from   dual”,暈倒~

          終于等到中午,上網去查資料。得解:
             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 (?, ?, ?, ?, ?, ?, ?)

             自動生成下一個序列值,然后將對象插入表中。
                 這樣問題得解!

          PS:
          sequence就是采用數據庫提供的sequence機制生成主鍵。如oralce中的Sequence
          native
          就是由hibernate根據數據庫的Dialect,自動采用identityhilosequence的其中一種作為主鍵生成方式

          posted on 2008-01-16 17:49 軋鋼王子 閱讀(1373) 評論(0)  編輯  收藏 所屬分類: Hibernate


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 龙岩市| 福州市| 宣汉县| 隆化县| 邯郸县| 武穴市| 井研县| 三门县| 左云县| 威海市| 罗城| 安图县| 岳阳县| 新化县| 甘谷县| 邢台县| 河东区| 昌吉市| 吉木萨尔县| 兰西县| 昆山市| 乌拉特前旗| 罗城| 湘潭县| 龙泉市| 昂仁县| 汝城县| 南皮县| 镇远县| 鄂托克旗| 都兰县| 贵港市| 密云县| 全椒县| 崇州市| 靖远县| 鸡东县| 常山县| 临清市| 衡山县| 郑州市|