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

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

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

    隨筆-124  評(píng)論-49  文章-56  trackbacks-0
    hibernate基本映射
    實(shí)體類------>表
    實(shí)體類的設(shè)計(jì)原則:
      * 實(shí)現(xiàn)一個(gè)默認(rèn)(無參)的構(gòu)造方法(constructor)
      * 提供一個(gè)標(biāo)識(shí)屬性(identifier property)
      * 使用非final的類
      * 為持久化字段聲明訪問器(accessors),即get/set方法
    實(shí)體類中的普通屬性----->表字段
    采用<class>標(biāo)簽映射成數(shù)據(jù)庫(kù)表,通過<property>標(biāo)簽將普通屬性映射成表字段
    所謂普通屬性不包括自定義類、集合和數(shù)組
    注意:表或字段與sql關(guān)鍵字一樣,必須重名稱
    <hibernate-mapping/>標(biāo)簽
    <hibernate-mapping
             schema="schemaName"                                    (1)
             catalog="catalogName"                                     (2)
             default-cascade="cascade_style"                       (3)
             default-access="field|property|ClassName"        (4)
             default-lazy="true|false"                                     (5)
             *auto-import="true|false"                                  (6)
             *package="package.name"                               (7)
     />
    (6) auto-import (可選 - 默認(rèn)為 true): 指定我們是否可以在查詢語言中使用非全限定的類名(僅限于本映射文件中的類)。
    (7) package (可選): 指定一個(gè)包前綴,如果在映射文檔中沒有指定全限定的類名, 就使用這個(gè)作為包名。
    <hibernate-mapping package="com.my.hibernate">
        
    <class name="User">
            
    <id name="id">
                
    <generator class="uuid"/>
            
    </id>
            
    <property name="name"/>
            
    <property name="password"/>
            
    <property name="createTime"/>
            
    <property name="expireTime"/>
        
    </class>
    </hibernate-mapping>
     
    <class/>標(biāo)簽--表
    <class
            *name="ClassName"                              (1)
            *table="tableName"                             (2)
            *discriminator-value="discriminator_value"     (3)
             mutable="true|false"                          (4)
             schema="owner"                                (5)
             catalog="catalog"                             (6)
             proxy="ProxyInterface"                        (7)
            *dynamic-update="true|false"                   (8)
            *dynamic-insert="true|false"                   (9)
             select-before-update="true|false"             (10)
             polymorphism="implicit|explicit"              (11)
             where="arbitrary sql where condition"         (12)
             persister="PersisterClass"                    (13)
            *batch-size="N"                                (14)
            *optimistic-lock="none|version|dirty|all"      (15)
            *lazy="true|false"                             (16)
             entity-name="EntityName"                      (17)
             check="arbitrary sql check condition"         (18)
             rowid="rowid"                                 (19)
             subselect="SQL expression"                    (20)
            *abstract="true|false"                         (21)
             node="element-name"
    />
    (1) name (可選): 持久化類(或者接口)的Java全限定名。 如果這個(gè)屬性不存在,Hibernate將假定這是一個(gè)非POJO的實(shí)體映射。
    (2) table (可選 - 默認(rèn)是類的非全限定名): 對(duì)應(yīng)的數(shù)據(jù)庫(kù)表名。
    (3) discriminator-value (可選 - 默認(rèn)和類名一樣): 一個(gè)用于區(qū)分不同的子類的值,在多態(tài)行為時(shí)使用。它可以接受的值包括 null 和 not null。
    (8) dynamic-update (可選, 默認(rèn)為 false): 指定用于UPDATE 的SQL將會(huì)在運(yùn)行時(shí)動(dòng)態(tài)生成,并且只更新那些改變過的字段。
    (9) dynamic-insert (可選, 默認(rèn)為 false): 指定用于INSERT的 SQL 將會(huì)在運(yùn)行時(shí)動(dòng)態(tài)生成,并且只包含那些非空值字段。
    (14) batch-size (可選,默認(rèn)是1) 指定一個(gè)用于 根據(jù)標(biāo)識(shí)符(identifier)抓取實(shí)例時(shí)使用的"batch size"(批次抓取數(shù)量)。
    (15) optimistic-lock(樂觀鎖定) (可選,默認(rèn)是version): 決定樂觀鎖定的策略。
    (16) lazy (可選): 通過設(shè)置lazy="false", 所有的延遲加載(Lazy fetching)功能將被全部禁用(disabled)。
    (21) abstract (可選): 用于在<union-subclass>的繼承結(jié)構(gòu) (hierarchies)中標(biāo)識(shí)抽象超類。
     

    <id/>標(biāo)簽 -主鍵
    主鍵生成策略:
    uuid  native 和assigned
    <id
            *name="propertyName"                                          (1)
            type="typename"                                              (2)
            *column="column_name"                                         (3)
            unsaved-value="null|any|none|undefined|id_value"             (4)
            access="field|property|ClassName"                            (5)
            node="element-name|@attribute-name|element/@attribute|.">
            *length                                                       (6)

            <generator class="generatorClass"/>
    </id>
    (1) name (可選): 標(biāo)識(shí)屬性的名字。
    (2) type (可選): 標(biāo)識(shí)Hibernate類型的名字。
    (3) column (可選 - 默認(rèn)為屬性名): 主鍵字段的名字。
    (4) unsaved-value (可選 - 默認(rèn)為一個(gè)切合實(shí)際(sensible)的值): 一個(gè)特定的標(biāo)識(shí)屬性值,用來標(biāo)志該實(shí)例是剛剛創(chuàng)建的,尚未保存。 這可以把這種實(shí)例和從以前的session中裝載過(可能又做過修改--譯者注) 但未再次持久化的實(shí)例區(qū)分開來。
    (5) access (可選 - 默認(rèn)為property): Hibernate用來訪問屬性值的策略。
    (6) 長(zhǎng)度.

     
    <generator/>生成唯一的標(biāo)識(shí)
    <id name="id" type="long" column="cat_id">
            <generator class="uuid">
            </generator>
    </id>
    identity
    對(duì)DB2,MySQL, MS SQL Server, Sybase和HypersonicSQL的內(nèi)置標(biāo)識(shí)字段提供支持。 返回的標(biāo)識(shí)符是long, short 或者int類型的。
    sequence
    在DB2,PostgreSQL, Oracle, SAP DB, McKoi中使用序列(sequence), 而在Interbase中使用生成器(generator)。返回的標(biāo)識(shí)符是long, short或者 int類型的。
    uuid
    用一個(gè)128-bit的UUID算法生成字符串類型的標(biāo)識(shí)符, 這在一個(gè)網(wǎng)絡(luò)中是唯一的(使用了IP地址)。UUID被編碼為一個(gè)32位16進(jìn)制數(shù)字的字符串。
    native
    根據(jù)底層數(shù)據(jù)庫(kù)的能力選擇identity, sequence 或者h(yuǎn)ilo中的一個(gè)。
    assigned
    讓應(yīng)用程序在save()之前為對(duì)象分配一個(gè)標(biāo)示符。這是 <generator>元素沒有指定時(shí)的默認(rèn)生成策略。
    foreign
    使用另外一個(gè)相關(guān)聯(lián)的對(duì)象的標(biāo)識(shí)符。通常和<one-to-one>聯(lián)合起來使用。
     
    <property/>生成字段
    <property
            *name="propertyName"                                          (1)
            *column="column_name"                                         (2)
            type="typename"                                              (3)
            update="true|false"                                          (4)
            insert="true|false"                                          (4)
            formula="arbitrary SQL expression"                           (5)
            access="field|property|ClassName"                            (6)
            lazy="true|false"                                            (7)
            unique="true|false"                                          (8)
            not-null="true|false"                                        (9)
            optimistic-lock="true|false"                                 (10)
            generated="never|insert|always"                              (11)
            node="element-name|@attribute-name|element/@attribute|."
            index="index_name"
            unique_key="unique_key_id"
            length="L"
            precision="P"
            scale="S"
    />
    (1) name: 屬性的名字,以小寫字母開頭。
    (2) column (可選 - 默認(rèn)為屬性名字): 對(duì)應(yīng)的數(shù)據(jù)庫(kù)字段名。 也可以通過嵌套的<column>元素指定。 
    (4) update, insert (可選 - 默認(rèn)為 true) : 表明用于UPDATE 和/或 INSERT 的SQL語句中是否包含這個(gè)被映射了的字段。這二者如果都設(shè)置為false 則表明這是一個(gè)“外源性(derived)”的屬性,它的值來源于映射到同一個(gè)(或多個(gè)) 字段的某些其他屬性,或者通過一個(gè)trigger(觸發(fā)器)或其他程序生成。
    (7) lazy (可選 - 默認(rèn)為 false): 指定 指定實(shí)例變量第一次被訪問時(shí),這個(gè)屬性是否延遲抓?。╢etched lazily)( 需要運(yùn)行時(shí)字節(jié)碼增強(qiáng))。
    (8) unique (可選): 使用DDL為該字段添加唯一的約束。 同樣,允許它作為property-ref引用的目標(biāo)。
    (9) not-null (可選): 使用DDL為該字段添加可否為空(nullability)的約束。

    映射文件中一般類型中可以省略,其他不略
    posted on 2009-11-03 15:35 junly 閱讀(547) 評(píng)論(0)  編輯  收藏 所屬分類: hibernate/orm
    主站蜘蛛池模板: 2021国产精品成人免费视频| 亚洲日本在线看片| 波多野结衣中文字幕免费视频| 免费看一级高潮毛片| 国产成人精品日本亚洲专区6| 亚洲乱码一区二区三区在线观看| 午夜无遮挡羞羞漫画免费| 久久精品一区二区免费看| 四虎影视在线看免费观看| 亚洲欧美日韩中文二区| 亚洲国产视频一区| 久久久久久亚洲av成人无码国产| 免费成人av电影| 浮力影院第一页小视频国产在线观看免费| 污污网站18禁在线永久免费观看| 一级毛片成人免费看a| 精品国产亚洲一区二区三区在线观看 | 日韩伦理片电影在线免费观看| 免费A级毛片无码视频| 热久久这里是精品6免费观看| 免费无码国产在线观国内自拍中文字幕| 2020久久精品亚洲热综合一本| 亚洲精品视频免费在线观看| 久久精品7亚洲午夜a| 国产亚洲精品成人AA片新蒲金 | 亚洲人成网站在线播放2019| 亚洲国产成人手机在线电影bd| 亚洲成人精品久久| 亚洲AV无码一区二区二三区入口 | 成年网在线观看免费观看网址| 亚洲国产精品无码久久九九大片| 亚洲a级片在线观看| 亚洲依依成人精品| 亚洲国产午夜精品理论片| 久久精品亚洲日本佐佐木明希| 亚洲国产精品国自产拍AV| 亚洲成A人片777777| 亚洲AV日韩精品久久久久久| 五月天网站亚洲小说| 欧洲亚洲国产清在高| 亚洲午夜免费视频|