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

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

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

    瘋狂

    STANDING ON THE SHOULDERS OF GIANTS
    posts - 481, comments - 486, trackbacks - 0, articles - 1
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    hibernate自定義主鍵策略

    Posted on 2011-05-16 17:09 瘋狂 閱讀(4064) 評(píng)論(1)  編輯  收藏 所屬分類: hibernate

    hibernate自定義主鍵策略,
    最近項(xiàng)目中使用hibernate的guid生成策略,配置如下:
    <id name="id" type="java.lang.String">
                <column name="ID" length="32" />
                <generator class="guid" />
    </id>
    發(fā)現(xiàn)生成的id很有規(guī)律,一看源碼原來(lái)hibernate的guid底層使用采用數(shù)據(jù)庫(kù)底層的guid算法機(jī)制,對(duì)應(yīng)MYSQL的uuid()函數(shù),SQL

    Server的newid()函數(shù),ORACLE的rawtohex(sys_guid())函數(shù)等。


    具體oracle使用的是(select rawtohex(sys_guid()) from dual)
    使用下面的pl/sql測(cè)試:

    declare 
      v varchar2(
    32);
    begin
      
    for i in 0..10 loop
      select   rawtohex(sys_guid()) into v from dual;
        dbms_output.put_line(v);
      end loop;
    end;


    結(jié)果:
    A36190EE69DDAAE7E040200A8A096CE5
    A36190EE69DEAAE7E040200A8A096CE5
    A36190EE69DFAAE7E040200A8A096CE5
    A36190EE69E0AAE7E040200A8A096CE5
    A36190EE69E1AAE7E040200A8A096CE5
    A36190EE69E2AAE7E040200A8A096CE5
    A36190EE69E3AAE7E040200A8A096CE5
    A36190EE69E4AAE7E040200A8A096CE5
    A36190EE69E5AAE7E040200A8A096CE5
    A36190EE69E6AAE7E040200A8A096CE5
    A36190EE69E7AAE7E040200A8A096CE5
    只有中間一個(gè)字符不同。

    下面采用hibernate自定id策略接口IdentifierGenerator
    我們簡(jiǎn)單起見(jiàn)使用jdk自帶的uuid方法:

    public class UUIDGenerator implements IdentifierGenerator{

     
    private static Logger logger = Logger.getLogger(UUIDGenerator.class);
     
     
    public Serializable generate(SessionImplementor session, Object object)
       
    throws HibernateException {
      String id 
    = UUID.randomUUID().toString().replaceAll("-""").toUpperCase();
      
      
    return id;
     }


    }


    然后在配置的時(shí)候用如下配置即可:

    <id name="id" type="java.lang.String">
                <column name="ID" length="32" />
                <generator class="com.XXX.XXX.UUIDGenerator" />
    </id>
    ~完~


    評(píng)論

    # re: hibernate自定義主鍵策略  回復(fù)  更多評(píng)論   

    2013-04-19 10:30 by 臭豆腐
    真心 不錯(cuò)
    主站蜘蛛池模板: 亚洲国产精品18久久久久久| 人体大胆做受免费视频| 国产精品免费_区二区三区观看| 美女被羞羞网站免费下载| 亚洲av无码成h人动漫无遮挡 | 97在线观看永久免费视频| 亚洲色偷偷综合亚洲AV伊人蜜桃| 亚洲一级片免费看| 最近2022中文字幕免费视频| 精品国产亚洲AV麻豆| 亚洲男人天堂2017| 亚洲成a人片在线观看国产| 95老司机免费福利| 精品国产免费人成网站| 456亚洲人成影院在线观| 亚洲色成人中文字幕网站| 免费无码黄十八禁网站在线观看| 国内精品99亚洲免费高清| 亚洲精品理论电影在线观看| 久久精品国产亚洲AV麻豆王友容| 日韩一级免费视频| 免费观看激色视频网站bd| 九九99热免费最新版| 亚洲色大18成人网站WWW在线播放| 久久亚洲国产中v天仙www| 亚洲AⅤ视频一区二区三区| 97性无码区免费| 一区二区三区四区免费视频 | 亚洲国产中文在线二区三区免| 免费人成年激情视频在线观看| 亚洲免费一级视频| 91精品成人免费国产| 特级无码毛片免费视频| 最新亚洲精品国偷自产在线| 国产福利免费视频 | 麻豆va在线精品免费播放| 中文字幕亚洲男人的天堂网络| 亚洲一区二区三区高清| 国产性爱在线观看亚洲黄色一级片 | 国产偷国产偷亚洲高清在线| 国产成人精品日本亚洲11|