<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 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    hibernate自定義主鍵策略

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

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

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


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

    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;


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

    下面采用hibernate自定id策略接口IdentifierGenerator
    我們簡單起見使用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;
     }


    }


    然后在配置的時候用如下配置即可:

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


    評論

    # re: hibernate自定義主鍵策略  回復  更多評論   

    2013-04-19 10:30 by 臭豆腐
    真心 不錯
    主站蜘蛛池模板: 国产综合亚洲专区在线| 无码人妻一区二区三区免费n鬼沢 无码人妻一区二区三区免费看 | 日韩毛片无码永久免费看| 亚洲综合网美国十次| 亚洲高清免费在线观看| 亚洲黄色免费网站| 24小时在线免费视频| 911精品国产亚洲日本美国韩国 | 国产成人精品免费久久久久 | 亚洲婷婷天堂在线综合| 精品久久8x国产免费观看| 亚洲毛片无码专区亚洲乱| 成人免费在线看片| 亚洲色大情网站www| 国产免费人人看大香伊| 一个人看的www免费在线视频| 亚洲人成影院在线无码按摩店| 暖暖在线视频免费视频| 亚洲日本乱码卡2卡3卡新区| 午夜免费不卡毛片完整版| 日韩在线观看视频免费| 久久久久久亚洲精品不卡| 久久精品无码专区免费东京热 | 精品久久久久久久免费人妻| 一级毛片免费播放视频| 亚洲精品中文字幕无乱码| 男女交性永久免费视频播放| 三年片在线观看免费西瓜视频| 国产成人亚洲综合网站不卡| 亚洲日韩精品A∨片无码| 免费大片黄在线观看yw| 久草免费福利在线| 久久精品国产亚洲AV| 亚洲乱码卡三乱码新区| 亚洲国产精品高清久久久| 成年性生交大片免费看| 无码午夜成人1000部免费视频| 日本免费精品一区二区三区| 亚洲国产成人久久综合一区| 在线观看国产区亚洲一区成人 | 亚洲一区无码精品色|