posts - 30, comments - 5, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          Hibernate Sequence基礎描述

          Posted on 2010-05-04 11:28 無所謂 閱讀(386) 評論(0)  編輯  收藏 所屬分類: Hibernate
            這里介紹Hibernate Sequence,包括介紹在Oracle sequence首先創建sequence create sequence seq_idminvalue 1start with 1increment by 1cache 20。

            Hibernate有很多值得學習的地方,這里我們主要介紹Hibernate Sequence,包括介紹Oracle sequence等方面。

            一、為表創建自增長自段有兩種

            一種是不同的表使用各自的Hibernate Sequence,方法如下:
            1、在Oracle sequence首先創建sequence create sequence seq_idminvalue 1start with 1increment by 1cache 20;
            2.在你的hbm.xml中的配置seq_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.

            二 還有一種方式是使用公共的sequence

            這各時候可以不指定表使用的sequence,那么相應的hbm.xml中內容是:

            然后創建公用的Hibernate sequence對象,命名為 hibernate_sequence
            ◆create sequence hibernate_sequence
            ◆minvalue 0
            ◆maxvalue 99999999
            ◆start with 10000
            ◆increment by 1;

            三 注意事項

            如果數據庫是從sqlserver等其他數據庫移植而來的,那么創建sequence時的起始值應該比當前表中最大的ID值大,否則會出現錯誤,因為sequence 不會維護是否和導庫前現有的值重復。
            1、sequence:用于Oracle數據庫
            2、native:跨數據庫時使用,由底層方言產生。

            Default.sequence為hibernate_sequence

            注:使用native時Hibernate默認會去查找Oracle中的hibernate_sequence序列。如果Oracle中沒有該序列,連Oracle數據庫時會報錯。

          主站蜘蛛池模板: 乌苏市| 常州市| 招远市| 昆明市| 喀喇沁旗| 静乐县| 秭归县| 固阳县| 兰西县| 广汉市| 五指山市| 陆丰市| 庄浪县| 南昌县| 如皋市| 象山县| 朔州市| 和田市| 嘉峪关市| 墨玉县| 伊川县| 新郑市| 滦南县| 襄汾县| 宽城| 西峡县| 科技| 资源县| 玛纳斯县| 玉龙| 柘荣县| 榆林市| 安平县| 张家界市| 南涧| 南和县| 江阴市| 肥城市| 中牟县| 登封市| 汝南县|