IT人生
          專注于java相關(guān)技術(shù).
          posts - 53,comments - 87,trackbacks - 0

          1、Hibernate基本數(shù)據(jù)類型

          Hibernate基本類型

          JAVA類型

          標(biāo)準(zhǔn)SQL字段類型

          Boolean

          Boolean,java.lang.boolean

          BIT

          Yes_no

          Boolean,java.lang.boolean

          Char(1)(Y/N)

          True_false

          Boolean,java.lang.boolean

          Char(1)(Y/N)

          Byte

          Byte,java.lang.byte

          TINYINT

          Short

          Short,java.lang.short

          SMALLINT

          Interger

          Int,java.lang.integer

          INTEGER

          Long

          Long,java.lang.long

          BIGINT

          Float

          Float,java.lang.float

          FLOAT

          Double

          Double,java.lang.Double

          DOUBLE

          Big_decimal

          Java.math.BigDecimal

          NUMBERIC

          Character

          Java.lang.string

          CHAR(1)

          String

          Java.lang.string

          VARCHAR

          Date

          Java.util.Date,java.sql.Date

          DATE

          Time

          Java.util.Date,java.sql.Time

          TIME

          Timestamp

          Java.util.Date,java.sql.TimeStamp

          TIMESTAMP

          Calender

          Java.util.Calendar

          TIMESTAMP

          Calender_date

          Java.util.Calendar

          Date

          Clob

          Java.sql.clob

          CLOB

          Blob

          Java.sql.blob

          BLOB

          Binary

          Byte[]

          VARBINARY,BLOB

          Text

          Java.lang.String

          CLOB

          Seralizable

          Java.io.serializable

          VARBINARY,BLOB

          Class

          Java.lang.class

          VARCHAR

          Local

          Java.util.locale

          VARCHAR

          Timezone

          Java.util.timezone

          VARCHAR

          Currency

          Java.util.currency

          VARCHAR

          2、OR映射

          (1)id映射

          <id column="ID" name="id" type="java.lang.String">

              <generator class="uuid.hex"/>

          </id>

          name:指定POJO類的成員變量名

          type:name指定變量的數(shù)據(jù)類型

          column:對應(yīng)數(shù)據(jù)庫表的主鍵字段

          (2)表/類映射

          <class name="test.pojo.company" table="company" lazy="false">

          </class>

          name:指定POJO類

          table:POJO類對應(yīng)的數(shù)據(jù)庫表

          lazy:延遲加載

          (3)實體映射

          <hibernate-mapping>

              <class name="test.pojo.company" table="company" >

                 <id column="ID" name="id" type="java.lang.String">

                     <generator class="uuid.hex"/>

                 </id>

                 <property column="NAME" name="name" type="java.lang.String"/>

                 <property column="ADDRESS" name="address" type="java.lang.String"/>

              </class>

          </hibernate-mapping>

          (4)復(fù)合主鍵映射

          <composite-id>

          <key-property column="USERID" name="userid" type="java.lang.String"></key-property>

          <key-property column="WHEN" name="when" type="java.sql.Date"></key-property>

          </composite-id>

          復(fù)合主鍵的POJO類需要實現(xiàn)equals和hashcode方法,可以使用apache commons lang包中的工具類實現(xiàn)(commons-lang.jar)

          3、generator子元素,其class屬性指定主鍵生成方式:

          increment(遞增):用于為long, short或者int類型生成唯一標(biāo)識。只有在沒有其他進(jìn)程往同一張表中插入數(shù)據(jù)時才能使用。 在集群下不要使用。

          identity :對DB2,MySQL, MS SQL Server, Sybase和HypersonicSQL的內(nèi)置標(biāo)識字段提供支持。返回的標(biāo)識符是long, short 或者int類型的。

          sequence (序列):在DB2,PostgreSQL, Oracle, SAP DB, McKoi中使用序列(sequence),而在Interbase中使用生成器(generator)。返回的標(biāo)識符是long, short或者 int類型的。

          hilo (高低位):使用一個高/低位算法來高效的生成long, short或者 int類型的標(biāo)識符。給定一個表和字段(默認(rèn)分別是是hibernate_unique_key 和next_hi)作為高位值得來源。高/低位算法生成的標(biāo)識符只在一個特定的數(shù)據(jù)庫中是唯一的。在使用JTA獲得的連接或者用戶自行提供的連接中,不要使用這種生成器。

          seqhilo(使用序列的高低位):使用一個高/低位算法來高效的生成long, short或者 int類型的標(biāo)識符,給定一個數(shù)據(jù)庫序列(sequence)的名字。

          uuid.hex :用一個128-bit的UUID算法生成字符串類型的標(biāo)識符。在一個網(wǎng)絡(luò)中唯一(使用了IP地址)。UUID被編碼為一個32位16進(jìn)制數(shù)字的字符串。

          uuid.string :使用同樣的UUID算法。UUID被編碼為一個16個字符長的任意ASCII字符組成的字符串。不能使用在PostgreSQL數(shù)據(jù)庫中

          native(本地):根據(jù)底層數(shù)據(jù)庫的能力選擇identity, sequence 或者h(yuǎn)ilo中的一個。

          assigned(程序設(shè)置):讓應(yīng)用程序在save()之前為對象分配一個標(biāo)示符。

          foreign(外部引用)

          select:hibernate3中新增的。需要提供一個唯一的標(biāo)識字段進(jìn)行二次讀取,以獲取觸發(fā)器生成的主鍵值,通過param子元素進(jìn)行定義,比如:

          <generator class="select">

              <param name="key">key_field</param>

          </generator>

          該方法主要針對遺留系統(tǒng)的改造工程,一些早期的系統(tǒng)主鍵依賴于觸發(fā)器生成。當(dāng)數(shù)據(jù)庫insert時,觸發(fā)器捕獲這一操作,并為主鍵賦值,在插入數(shù)據(jù)庫后,再次讀取某一識別字段讀取已經(jīng)插入的數(shù)據(jù),獲取其主鍵值。



          減肥瘦身品總匯     值得信賴*脈脈美妝*正品現(xiàn)貨謝絕講價     〓深港商盟〓名品歐衣坊(美國休閑品牌AF系列)     QQ三國游戲幣及道具專賣店     小臉紅紅的瘦身旗艦店
          posted on 2009-04-29 08:53 龍華城 閱讀(1326) 評論(0)  編輯  收藏 所屬分類: Hibernate
          主站蜘蛛池模板: 柘城县| 南宫市| 海门市| 明水县| 巴青县| 革吉县| 山丹县| 大荔县| 遂宁市| 高青县| 施甸县| 越西县| 永康市| 马边| 东莞市| 南城县| 库伦旗| 兴业县| 天长市| 中西区| 临朐县| 博湖县| 浙江省| 葵青区| 广德县| 郁南县| 苗栗市| 化德县| 龙海市| 郑州市| 阆中市| 遵义市| 四川省| 谢通门县| 饶阳县| 精河县| 山丹县| 秭归县| 嘉鱼县| 龙井市| 德惠市|