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

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

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

    spark的自留地(ofbiz/eclipse rcp/shark/opentaps)

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      54 Posts :: 0 Stories :: 112 Comments :: 0 Trackbacks
    * 保持實體名稱少于25個字符
    這個限制主要是為了Oracle只支持30字符以內的數據庫對象名稱,再加上OFBiz會自動在單詞之間加上"_",所以就得出了這么個限制.

    * 關聯的工作方式
    它們定義于entitymodel.xml文件中的<entity>段,示例如下:
          <relation type="one" fk-name="PROD_CTGRY_PARENT" title="PrimaryParent" rel-entity-name="ProductCategory">
            
    <key-map field-name="primaryParentCategoryId" rel-field-name="productCategoryId"/>
          
    </relation>
          
    <relation type="many" title="PrimaryChild" rel-entity-name="ProductCategory">
            
    <key-map field-name="productCategoryId" rel-field-name="primaryParentCategoryId"/>
          
    </relation>
        type這個屬性標簽定義關聯類型: "one"表示一對一,"many"表示從此實體引出的一對多關系
        fk-name的屬性值是數據庫外鍵名.為自己的外鍵命名是一個好的習慣,雖然如果你不設置此屬性,OFiz也會自己建外建.
        rel-entity-name的屬性值指向關聯的實體名稱
        title用來區分兩個實體之間的多重關系
        <key-map>節點定義關聯中使用到的字段.field-name指向本實體內的引用字段,rel-field-name定義關聯的實體字段,你可以通過多個字段組合關聯
        當你訪問一個關聯,你可以使用title+entityName作為參數調用.getRelated("")或.getRelatedOne("")方法.在關聯為"many"時使用.getRelated("")是恰當的,因為它返回一個List,同樣在關聯為"one"時通過.getRelatedOne("")方法獲得一個值.

    * view-entities相關內容
    view-entities的功能非常強大,它允許你可以創建一個join-like查詢,即使你的數據庫不支持join.
    關于你數據庫的join語法存放在entityengine.xml的datasource節點下的join-style屬性中.
    當你通過<view-link...>節點將兩上實體連接起來時,記住:
    1. 實體名稱順序是重要的
    2. 默認的連接方式是inner join(即同樣的值存在于兩個實體類中),外連接需要使用rel-optional="true"
    如果多個實體中擁有相同的字段名稱,比如statusId,結果集中的statusId使用第一個實體中的該列,其它實體中的同名列將被丟棄.如果你想要同時獲得這些列,你需要通過在其之前加入<alias-all>節點,一個方式是使用<alias ..>節點來為不同實體的同名字段起別名,示例:
    <alias entity="EntityOne" name="entityOneStatusId" field="statusId"/>
    <alias entity="EntityTwo" name="entityTwoStatusId" field="statusId"/>
    另一種方法是在<alias-all>節點中使用<exclude field="">,如下:
    <alias-all entity-alias="EN">
      
    <exclude field="fieldNameToExclude1"/>
      
    <exclude field="fieldNameToExclude2"/>
    </alias-all>

    這樣也可以排除掉很多不打算使用到的信息,特別是在一個非常大的表中查詢時.
    如果你打算執行類似于以下的查詢語句時:
    SELECT count(visitId) FROM  GROUP BY trackingCodeId WHERE fromDate > '2005-01-01'
    需要包含字段visitId以及function="count" 標簽,trackingCodeId需加上group-by="true"標簽,fromDate需要加上group-by="false"標簽

    在你進行查詢時,有一件非常重要的事情需要注意,比如說delegator.findByCondition方法,你必須指定檢出的字段列表,并且你不能指定fromDate字段,否則你將得到一個錯誤.這就是為webtools不能夠使用view-entities來查看的原因.

    你可以查看applications/marketing/entitydef/entitymodel.xml的底部內容學習,及通過applications/marketing/webapp/marketing/WEB-INF/actions/reports學習beanshell腳本的調用.

    未完待續>>

    本文檔譯自ofbiz 4.0 cookbooks,本人翻譯,歡迎轉載,請注明出處.
    posted on 2008-10-24 16:26 shanghai_spark 閱讀(1901) 評論(0)  編輯  收藏 所屬分類: opentaps
    主站蜘蛛池模板: 亚洲国产成人精品久久久国产成人一区二区三区综 | 国产AV旡码专区亚洲AV苍井空| 全免费a级毛片免费看不卡| 一区二区三区免费高清视频| 亚洲国语精品自产拍在线观看| 狼友av永久网站免费观看| 中文字幕视频免费在线观看| 国产精品亚洲片夜色在线 | 亚洲中文字幕一区精品自拍| 亚洲国产午夜福利在线播放| 国产92成人精品视频免费| 免费一级毛片在线播放视频免费观看永久 | 亚洲av无码片区一区二区三区| 亚洲AV日韩精品一区二区三区| 91精品国产免费久久国语蜜臀| 青青免费在线视频| 在线免费观看亚洲| 亚洲免费日韩无码系列| 久久久久国色AV免费观看性色| 97在线视频免费公开视频| 亚洲AV综合色区无码一二三区| 亚洲一区二区三区日本久久九| 又黄又大又爽免费视频| 无码人妻久久一区二区三区免费丨 | 亚洲成人激情在线| 亚洲午夜AV无码专区在线播放| 久久WWW免费人成人片| 久久午夜无码免费| 国产精品免费大片一区二区| 亚洲精品无码永久在线观看男男| 久久精品视频亚洲| 久久久无码精品亚洲日韩软件| 在线免费观看色片| 91免费播放人人爽人人快乐| 久久99免费视频| 国产免费黄色无码视频| 羞羞视频在线免费观看| 亚洲精品国产精品| 国产午夜亚洲精品| 亚洲免费人成视频观看| 亚洲精品午夜视频|