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數據庫時會報錯。

          主站蜘蛛池模板: 南宫市| 江永县| 滦平县| 香港 | 婺源县| 和平县| 邵阳县| 新蔡县| 布尔津县| 金昌市| 三门县| 广元市| 桦川县| 稷山县| 会同县| 隆子县| 泉州市| 冷水江市| 隆化县| 永康市| 巴东县| 扶绥县| 筠连县| 申扎县| 新龙县| 望谟县| 疏勒县| 丁青县| 安阳县| 阿拉善左旗| 广西| 三台县| 黎川县| 兰坪| 石门县| 札达县| 双鸭山市| 崇州市| 嫩江县| 三门峡市| 海淀区|