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

          Hibernate Sequence基礎(chǔ)描述

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

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

            一、為表創(chuàng)建自增長自段有兩種

            一種是不同的表使用各自的Hibernate Sequence,方法如下:
            1、在Oracle sequence首先創(chuàng)建sequence create sequence seq_idminvalue 1start with 1increment by 1cache 20;
            2.在你的hbm.xml中的配置seq_id

            這樣再插入數(shù)據(jù)的時(shí)候,Hibernate會(huì)自動(dòng)生成如下語句:

            hibernate: select seq_id.nextval from dual hibernate: insert into YXJK.T_YXJK_WHRYTXL (XM0000, ZW0000, LXDH00, SJHM00, DZYJ00,IP0000, ID0000) values (?, ?, ?, ?, ?, ?, ?)

            自動(dòng)生成下一個(gè)序列值,然后將對象插入表中。在使用的時(shí)候需要注意,Hibernate對于sequence的主鍵的要求是一定要是shor,long,或者integer.

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

            這各時(shí)候可以不指定表使用的sequence,那么相應(yīng)的hbm.xml中內(nèi)容是:

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

            三 注意事項(xiàng)

            如果數(shù)據(jù)庫是從sqlserver等其他數(shù)據(jù)庫移植而來的,那么創(chuàng)建sequence時(shí)的起始值應(yīng)該比當(dāng)前表中最大的ID值大,否則會(huì)出現(xiàn)錯(cuò)誤,因?yàn)閟equence 不會(huì)維護(hù)是否和導(dǎo)庫前現(xiàn)有的值重復(fù)。
            1、sequence:用于Oracle數(shù)據(jù)庫
            2、native:跨數(shù)據(jù)庫時(shí)使用,由底層方言產(chǎn)生。

            Default.sequence為hibernate_sequence

            注:使用native時(shí)Hibernate默認(rèn)會(huì)去查找Oracle中的hibernate_sequence序列。如果Oracle中沒有該序列,連Oracle數(shù)據(jù)庫時(shí)會(huì)報(bào)錯(cuò)。

          主站蜘蛛池模板: 长顺县| 建昌县| 台湾省| 永吉县| 微博| 余干县| 策勒县| 屯留县| 鄂尔多斯市| 永川市| 凤翔县| 察雅县| 通江县| 大冶市| 寿光市| 武清区| 定西市| 桂东县| 利川市| 甘南县| 景宁| 曲水县| 丹东市| 浏阳市| 马公市| 南城县| 双流县| 南平市| 合江县| 沙雅县| 海林市| 江永县| 达尔| 盘山县| 康平县| 大宁县| 万全县| 广平县| 浑源县| 沙湾县| 玉龙|