Hibernate映射主鍵

        Hibernate建議爲持久化類定義一個標識屬性,用於惟一的標識某個持久化實列,而標識屬性須要映射到底層數據表的主鍵。標識屬性經過<id>元素來指定。<id>的name元素指定該實列化類中的屬性名稱。<id>其餘屬性以下:算法

    1)type:指定該標識屬性的數據類型,該類型能夠是Hibernate內建類型,也能夠是JAVA類型,若是使用JAVA類型則須要使用全限定類名。該類型可選,若是沒有指定,Hibernate會自行判斷該屬性的類型。數據庫

    2)column:設置標識屬性所映射的數據列的列名。默認狀況下,該列的列名與該標識屬性的屬性名相同。網絡

    3) unsaved-value:指定當某個實例剛剛建立、還未保存時的標識屬性值。ide

    4)assess:指定Hibernate訪問該標識屬性的訪問策略,默認爲property。ui

其中主鍵生成器有以下幾種:對象

    1)increment:爲long、short或者int類型主鍵生成惟一標識。只有在沒有其餘進程往同一張表中插入數據時才能使用。在集羣中不要使用。進程

    2)identity:主鍵自增類型,返回的標識屬性是long、short或int類型的。rem

    3)sequence:主鍵經過序列方式增加,返回的標識屬性是long、short或int類型的。字符串

    4)hilo:使用一個高、低位算法高效的生成是long、short或int類型的標識符。it

    5)uuid:使用網絡中的惟一標識符來生成主鍵。

    UUID算法會根據IP地址,JVM的啓動時間(精確到1/4秒)、系統時間和一個計數器值(在JVM中惟一)來生成一位32位的字符串,由於一般UUID生成的字符串在一個網絡中是惟一的。

    6)native:根據底層數據庫的能力選擇identity、sequence或者hilo中的一個。

    7)assigned:讓應用程序在save()以前爲對象分配一個標識符。

    8)select:經過數據庫觸發器選擇某個惟一主鍵的行,並返回其主鍵值做爲標識屬性值。

相關文章
相關標籤/搜索