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

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

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

    Oracle神諭

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

     (二)在jBPM中的使用
     1.在jBPM的definition組的類機構中就采用上述的技術。其中ModuleDefinition是作為抽象父類存在的,而ContextDefinition、FileDefinition、LoggingDefinition、SchedulerDefinition、MgmtDefinition類是做為subclass存在的。
     2.在父類中使用了discriminator鑒別器的技術:在繼承策略中的“一個對象繼承樹應對應一個表”的策略中,<discriminator>元素是必須的。鑒別器字段包含標志值,用于告知持久層應該為某個特定的行創建哪一個類別的實例。例如:
      父類的影射片段:
        <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.鑒別器字段的實際值是根據<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世界暢談 閱讀(4588) 評論(2)  編輯  收藏 所屬分類: JBPM

    評論

    # re: Hibernate的subclass用法 2005-12-06 17:29 p
    不錯
      回復  更多評論
      

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

    主站蜘蛛池模板: 亚洲天然素人无码专区| 97se亚洲综合在线| 日本系列1页亚洲系列| 男人的好免费观看在线视频| 亚洲国产人成在线观看| 国产又黄又爽又猛免费app| 亚洲va成无码人在线观看| 无码中文在线二区免费| 亚洲一区二区三区免费观看| 思思99re66在线精品免费观看| 亚洲一区二区三区亚瑟| 免费观看的a级毛片的网站| 国产亚洲精品仙踪林在线播放| 亚洲?V无码乱码国产精品| 国产精品美女久久久免费| 久久久久亚洲Av片无码v| 久久久久久精品免费免费自慰| 亚洲 日韩 色 图网站| 国产免费爽爽视频免费可以看| 国产精品黄页免费高清在线观看| 亚洲中久无码永久在线观看同| 免费国产99久久久香蕉| 亚洲香蕉久久一区二区| 亚洲A∨午夜成人片精品网站| 国产精品一区二区三区免费| 亚洲黄色片免费看| 日韩a级毛片免费观看| 中文字幕免费在线播放| 亚洲网红精品大秀在线观看| 毛片免费在线视频| 本免费AV无码专区一区| 亚洲伊人久久大香线焦| 深夜国产福利99亚洲视频| 久久免费福利视频| 亚洲人片在线观看天堂无码| 亚洲区小说区激情区图片区| 国产成人精品免费视| 日本永久免费a∨在线视频| 亚洲综合日韩中文字幕v在线| 日本成人在线免费观看 | 久久无码av亚洲精品色午夜|