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

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

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

    posts - 93,  comments - 2,  trackbacks - 0

    Hibernate 默認(rèn)總共支持 13 種生成策略 : 

    1. increment        2.  identity        3. sequence

    4. hilo                  5. seqhilo         6. uuid

    7. uuid.hex          8. guid             9. native

    10. assigned       11. select         12. foreign        13. sequence-identity

     

    下面介紹幾個(gè)較為常用的策略 : 

    ① identity [ 自然遞增 ]

             支持 DB2,MySQL,SQL Server,Sybase 和HypersonicSQL 數(shù)據(jù)庫(kù), 用于為 long 或 short 或 int 類(lèi)型生成唯一標(biāo)識(shí)。它依賴于底層不同的數(shù)據(jù)庫(kù),
           與 Hibernate 和 程序員無(wú)關(guān)。

    注解示例 : 

    @Id

    @GenericGenerator(name = "idGenerator", strategy = "identity")

    @GeneratedValue(generator = "idGenerator")

     

    ② sequence [ 序列 ]

    支持 Oracle,DB2,PostgreSql,SAPDb 等數(shù)據(jù)庫(kù),用于為 long 或 short 或 int 類(lèi)型生成唯一標(biāo)識(shí)。它需要底層數(shù)據(jù)庫(kù)的支持,
           并由數(shù)據(jù)庫(kù)來(lái)維護(hù)這個(gè) sequence 序列。

    注解示例 : 

    @Id

       @GenericGenerator(name = "idGenerator", strategy = "sequence",

    parameters = {@Parameter(name = "sequence",value="seq_name")})

       @GeneratedValue(generator = "idGenerator")

    注意 : 該策略要求設(shè)定序列名,否則 hibernate 將無(wú)法找到,這將引致拋出異常 :

    org.hibernate.exception.SQLGrammarException: could not get next sequence value

     

    ③ native

             需底層數(shù)據(jù)庫(kù)的支持,對(duì)于 MySQL,SQL Server 采用 identity 的生成策略,對(duì)于 Oracle,則采用 sequence 策略。

    注解示例 :

    @Id

       @GenericGenerator(name = "idGenerator", strategy = "native")

       @GeneratedValue(generator = "idGenerator")

     

    ④ increment [ 自然遞增 ]

           與 identity 策略不同的是,該策略不依賴于底層數(shù)據(jù)庫(kù),而依賴于 hibernate 本身,用于為 long 或 short 或 int 類(lèi)型生成唯一標(biāo)識(shí)。
           主鍵計(jì)數(shù)器是由 hibernate 的一個(gè)實(shí)例來(lái)維護(hù),每次自增量為 1,但在集群下不能使用該策略,
           否則將引起主鍵沖突的情況,該策略適用于所有關(guān)系型數(shù)據(jù)庫(kù)使用。

    注解示例 :

           @Id

       @GenericGenerator(name = "idGenerator", strategy = "increment")

       @GeneratedValue(generator = "idGenerator")

     

    ⑤ uuid [ 32位16進(jìn)制數(shù)的字符串 ]

             采用128位UUID算法生成主鍵,能夠保證網(wǎng)絡(luò)環(huán)境下的主鍵唯一性,也就能夠保證在不同數(shù)據(jù)庫(kù)及不同服務(wù)器下主鍵的唯一性。
           uuid 最終被編碼成一個(gè)32位16進(jìn)制數(shù)的字符串,
           占用的存儲(chǔ)空間較大。用于為 String 類(lèi)型生成唯一標(biāo)識(shí),適用于所有關(guān)系型數(shù)據(jù)庫(kù)。

    注解示例 :

           @Id

       @GenericGenerator(name = "idGenerator", strategy = "uuid")

       @GeneratedValue(generator = "idGenerator")

     

    ⑤ assigned [ 手工分配主鍵ID值 ]

           該策略要求程序員必須自己維護(hù)和管理主鍵,當(dāng)有數(shù)據(jù)需要存儲(chǔ)時(shí),程序員必須自己為該數(shù)據(jù)分配指定一個(gè)主鍵ID值,
           如果該數(shù)據(jù)沒(méi)有被分配主鍵ID值或分配的值存在重復(fù),則該數(shù)據(jù)都將無(wú)法被持久化且會(huì)引起異常的拋出。

    注解示例 :

           @Id

       @GenericGenerator(name = "idGenerator", strategy = "assigned")

       @GeneratedValue(generator = "idGenerator")





       [ 隨筆均原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處:http://m.tkk7.com/fancydeepin ]
     
    posted on 2014-03-06 16:13 Terry Zou 閱讀(213) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): hibernate

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    <2014年3月>
    2324252627281
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    常用鏈接

    留言簿(2)

    隨筆分類(lèi)

    隨筆檔案

    文章分類(lèi)

    文章檔案

    相冊(cè)

    收藏夾

    Java

    搜索

    •  

    最新隨筆

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 一区二区亚洲精品精华液| 免费看少妇作爱视频| 91嫩草私人成人亚洲影院| 国产免费一区二区视频| 亚洲热妇无码AV在线播放| 国产一级一毛免费黄片| 国产午夜亚洲不卡| aa级毛片毛片免费观看久| 激情综合色五月丁香六月亚洲| 九九99热免费最新版| 亚洲色自偷自拍另类小说| 国产午夜成人免费看片无遮挡| 亚洲国产精品无码久久久蜜芽| 色欲国产麻豆一精品一AV一免费| 色婷婷六月亚洲婷婷丁香| 4399影视免费观看高清直播| 亚洲成人免费网站| 免费一本色道久久一区| 亚洲熟妇AV乱码在线观看| 日韩免费视频一区| 免费人成视频在线观看免费| 亚洲精品偷拍视频免费观看 | 欧美三级在线电影免费| 亚洲成人激情小说| 国产精品色午夜免费视频| 污污视频免费观看网站| 中文字幕亚洲天堂| 日韩视频免费在线观看| 亚洲电影免费观看| 成人免费777777| 羞羞网站在线免费观看| 亚洲自偷自偷偷色无码中文| 久久一本岛在免费线观看2020| 亚洲精品在线免费看| 成年男女免费视频网站| 国产尤物在线视精品在亚洲| 中文字幕精品亚洲无线码一区| 亚欧免费无码aⅴ在线观看| 亚洲av无码片在线观看| 免费a级毛片无码a∨性按摩| 中文字幕免费在线看线人动作大片|