<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ò)
    主站蜘蛛池模板: 1000部拍拍拍18勿入免费视频软件| 久久精品国产亚洲av瑜伽| 两个人看的www免费视频| 国产高清在线精品免费软件| 天天爽亚洲中文字幕| 精品女同一区二区三区免费站| 久久亚洲高清观看| 国产在线一区二区综合免费视频| 亚洲女同成av人片在线观看| 中文字幕无码毛片免费看| 国产v亚洲v天堂无码网站| 久久久久久免费一区二区三区| 亚洲av无码成h人动漫无遮挡| 国产麻豆成人传媒免费观看| 久久亚洲精品成人AV| 成年人视频免费在线观看| 一本色道久久88亚洲精品综合| 日韩免费观看一级毛片看看 | 久久久久亚洲AV无码永不| 亚洲一区免费视频| 亚洲人成人伊人成综合网无码| 国产无遮挡裸体免费视频| 亚洲国产免费综合| 久久精品九九亚洲精品| 免费可以在线看A∨网站| 美女被免费网站在线视频免费 | 久久免费公开视频| 亚洲男人的天堂久久精品| 精品国产麻豆免费网站| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 无码视频免费一区二三区 | 久久久久亚洲Av无码专| 女人18一级毛片免费观看| 搜日本一区二区三区免费高清视频| 亚洲国产精品乱码一区二区| 国产卡一卡二卡三免费入口| 四虎精品成人免费视频| 亚洲高清无在码在线无弹窗 | 免费亚洲视频在线观看| 亚洲ⅴ国产v天堂a无码二区| 91嫩草国产在线观看免费|