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

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

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

    Oracle神諭

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      284 隨筆 :: 9 文章 :: 106 評(píng)論 :: 0 Trackbacks
      看到j(luò)BPM中大量使用了subclass的用法,應(yīng)該說這個(gè)是比較OO的,設(shè)計(jì)的非常合理。
      (一)、首先先去看看Hibernate的subclass:
      1.對(duì)于“每一個(gè)類繼承樹對(duì)應(yīng)一個(gè)表”的策略來說,就需要使用<subclass>定義。
      <subclass>
                name="className"  //子類的全名
                discriminator-value="discriminator-value" //辨別標(biāo)識(shí),一個(gè)用于區(qū)分每個(gè)獨(dú)立的子類的值
                proxy="proxyInterface" //指定一個(gè)類或接口,在延遲加載時(shí)作為代理使用
                lazy="true|false"
                dynamic-update="true|false"
                dynamic-insert="true|false"
                entity-name="entityName"
                node="element-name">
               <property ..../>
              ......
            </subclass>
      2.每個(gè)子類都應(yīng)該定義它自己的持久化屬性和子類。<version>和<id>屬性可以從根父類繼承下去。在一棵繼承樹上的每個(gè)子類都必須定義一個(gè)唯一的discriminator-value。如果沒有指定,就會(huì)使用Java類的全限定名。
      3.必須在子類的影射中指定extends屬性來指定已影射的超類。

     (二)在jBPM中的使用
     1.在jBPM的definition組的類機(jī)構(gòu)中就采用上述的技術(shù)。其中ModuleDefinition是作為抽象父類存在的,而ContextDefinition、FileDefinition、LoggingDefinition、SchedulerDefinition、MgmtDefinition類是做為subclass存在的。
     2.在父類中使用了discriminator鑒別器的技術(shù):在繼承策略中的“一個(gè)對(duì)象繼承樹應(yīng)對(duì)應(yīng)一個(gè)表”的策略中,<discriminator>元素是必須的。鑒別器字段包含標(biāo)志值,用于告知持久層應(yīng)該為某個(gè)特定的行創(chuàng)建哪一個(gè)類別的實(shí)例。例如:
      父類的影射片段:
        <discriminator type="char" column="CLASS_"/>
        <!-- M : org.jbpm.module.def.ModuleDefinition -->
        <!-- C : org.jbpm.context.def.ContextDefinition -->
        <!-- F : org.jbpm.file.def.FileDefinition -->
        <!-- L : org.jbpm.logging.def.LoggingDefinition -->
        <!-- I : org.jbpm.scheduler.def.SchedulerDefinition -->
        <!-- T : org.jbpm.taskmgmt.def.TaskMgmtDefinition -->
        <!--  :  -->
        <!--  :  -->
     3.鑒別器字段的實(shí)際值是根據(jù)<class>和<subclass>元素中的discriminator-value屬性得來的。
     例如:
      父影射文件:
      <class name="org.jbpm.module.def.ModuleDefinition"
             table="JBPM_MODULEDEFINITION"
             abstract="true"
             discriminator-value="M"
             lazy="false">
           子影射文件:
      <subclass name="org.jbpm.context.def.ContextDefinition"
                extends="org.jbpm.module.def.ModuleDefinition"
                discriminator-value="C"
                lazy="false">
           </subclass>
    posted on 2005-10-03 10:22 java世界暢談 閱讀(4590) 評(píng)論(2)  編輯  收藏 所屬分類: JBPM

    評(píng)論

    # re: Hibernate的subclass用法 2005-12-06 17:29 p
    不錯(cuò)
      回復(fù)  更多評(píng)論
      

    # re: Hibernate的subclass用法 2007-04-28 14:28 necropolis
    講的很清楚,簡明扼要  回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: 久久久久久久久亚洲| 久久久久一级精品亚洲国产成人综合AV区| 国产亚洲精品无码拍拍拍色欲| 人禽伦免费交视频播放| 中文字幕亚洲天堂| 免费无码黄网站在线看| 亚洲AV日韩精品久久久久久久| 久久九九AV免费精品| 亚洲精品第一国产综合精品| av免费不卡国产观看| 国产亚洲精品影视在线| 免费夜色污私人影院在线观看| 一区视频免费观看| 亚洲AV日韩AV永久无码绿巨人 | 热久久精品免费视频| 亚洲aⅴ天堂av天堂无码麻豆| 国产真人无遮挡作爱免费视频| 又黄又大的激情视频在线观看免费视频社区在线| 四虎亚洲国产成人久久精品| a毛片视频免费观看影院| 亚洲沟沟美女亚洲沟沟| 成年大片免费视频| 九九九国产精品成人免费视频| 久久精品国产99精品国产亚洲性色| 青青视频观看免费99| 美女被艹免费视频| 亚洲国产精品无码av| 国产精品久久免费| 黄色网址大全免费| 亚洲人成亚洲精品| 麻豆国产人免费人成免费视频| 巨胸喷奶水www永久免费| 亚洲成人黄色网址| 亚洲成a人片在线观看国产| 一区二区三区四区免费视频| 亚洲av成人一区二区三区观看在线| 国产精品亚洲片在线| 天堂在线免费观看中文版| 特a级免费高清黄色片| 亚洲天堂中文字幕在线观看| 免费永久看黄在线观看app|