<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-9  評論-168  文章-266  trackbacks-0
          1)increment 代理主鍵,hibernate自動以遞增的方式來生成標識符,每次增加1.
          2)identity 代理主鍵,由底層數據庫生成標識符,前提就是底層的數據庫支持自動增長的類型.
          3)sequence 代理主鍵,hibernate根據底層數據庫生成的標識符,前提是底層數據庫支持序列
          4)hilo 代理主鍵,hibernate根據higg/low算法來生成的標識符,把特定表的字段作為high的值,默認選用hibernate_unique_key表的next_hi字段
          5)native 代理主鍵,根據底層數據庫對自動生成標識符的支持能力,還選擇identity,sequence,或hilo.
          6)uuid.hex 代理主鍵,hibernate采用128位的UUID算法生成標識符,UUID算法能夠在網絡環境下生成唯一字符串標識符.不過字符串要比數據占用的空間多的多.所以不流行使用.
          7)assigned 適用于自然主鍵,由JAVA應用程序負責生成標識符,為了能讓JAVA設置OID.不能吧setId方法設置為非公共類型了,這種方式也盡量避免使用.
          這里個人覺得第一種方式,也就是說由Hibernate來生成對象標識符的方式比較好.但是這種方式的缺點是只能一個Hibernate對應一個數據庫的表.當同時創建了SeesionFactory實例的時候.兩個或者更多的Hibernate對應同一個數據庫的時候就會插入出錯.這個時候我們可以選擇第二種方式把標識符的生成工作交給底層數據庫.還有一個小知識點要注意就是OID必須定義為long,int,short類型,如果定義為byte會報異常,這里推薦用long.
          總結一下,這7中生成OID標識符的方法,increment 比較常用,把標識符生成的權力交給Hibernate處理.但是當同時多個Hibernate應用操作同一個數據庫,甚至同一張表的時候.就推薦使用identity 依賴底層數據庫實現,但是數據庫必須支持自動增長,sequence 以來底層數據庫實現,但是數據庫必須支持系列.hilo 根據特定的表實現.這三種方式了.當然針對不同的數據庫選擇不同的方法.如果你不能確定你使用的數據庫具體支持什么的情況下.可以選擇第三種.或者用native 讓Hibernate來幫選擇identity,sequence,或hilo.后邊的自然主鍵不推薦使用,因為自然主鍵就是具有業務含義的主鍵,在現在的軟件開發結構中,已經很少有人用了.下面總結一下幾種常用數據庫,可以使用的標識符類型.
          MySQL:identity數據庫底層實現,需要支持自動增長,increment由Hibernate實現,hilo用特定的表實現,
          MSSQL:identity數據庫底層實現,需要支持自動增長,increment由Hibernate實現,hilo用特定的表實現,
          Oracle:sequence數據庫底層實現,需要支持序列,increment由Hibernate實現,hilo用特定的表實現,
          以上不難發現,所有的數據庫都支持Hibernate用increment實現OID的生成,MYSQL和MSSQL數據庫底層實現支持自動增長,而Oracle支持序列,還有用特殊表的實現方式這三個數據庫都支持.還有一種實現方式適用于所有的數據庫,就是native,由Hibernate去選擇使用什么樣的方式來生成IOD對象標識符,這種方式也是跨平臺的.

                                                                                         --------------摘自:http://www.tkk7.com/action/archive/2007/05/22/119134.html
    posted on 2008-03-19 12:11 紫蝶∏飛揚↗ 閱讀(338) 評論(0)  編輯  收藏 所屬分類: Hibernate
    主站蜘蛛池模板: 亚洲乱码日产一区三区| 美女黄色毛片免费看| 黄瓜视频高清在线看免费下载| 亚洲人成网国产最新在线| 亚洲国产精品狼友中文久久久 | 亚洲高清在线视频| 在线观看成人免费视频| 国产午夜精品理论片免费观看| 亚洲综合色一区二区三区小说| 成年女人午夜毛片免费看| caoporn成人免费公开| 亚洲欧洲综合在线| 亚洲欧洲中文日韩久久AV乱码| 国内精自视频品线六区免费| 一本大道一卡二大卡三卡免费| 亚洲白嫩在线观看| 久久久久国产亚洲AV麻豆 | 在线观看永久免费视频网站| a色毛片免费视频| 亚洲AV永久无码天堂影院 | 亚洲色中文字幕在线播放| 中文亚洲AV片在线观看不卡 | 亚洲Av无码乱码在线观看性色| 人妻无码一区二区三区免费| 色网站在线免费观看| 亚洲成a人片77777群色| 亚洲人成网站在线观看播放| 国产国产人免费人成免费视频| 3344永久在线观看视频免费首页| www在线观看播放免费视频日本| 亚洲色成人WWW永久在线观看| 久久久无码精品亚洲日韩按摩| 亚洲精品成人区在线观看| 麻豆国产人免费人成免费视频| 222www在线观看免费| 国产午夜精品免费一区二区三区 | 亚洲AV中文无码乱人伦下载| 亚洲?V乱码久久精品蜜桃 | 亚洲AV无码专区亚洲AV桃| 亚洲jjzzjjzz在线播放| 久久亚洲精品无码aⅴ大香|