<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 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      54 Posts :: 0 Stories :: 112 Comments :: 0 Trackbacks
    * 保持實(shí)體名稱少于25個(gè)字符
    這個(gè)限制主要是為了Oracle只支持30字符以內(nèi)的數(shù)據(jù)庫對象名稱,再加上OFBiz會自動在單詞之間加上"_",所以就得出了這么個(gè)限制.

    * 關(guān)聯(lián)的工作方式
    它們定義于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這個(gè)屬性標(biāo)簽定義關(guān)聯(lián)類型: "one"表示一對一,"many"表示從此實(shí)體引出的一對多關(guān)系
        fk-name的屬性值是數(shù)據(jù)庫外鍵名.為自己的外鍵命名是一個(gè)好的習(xí)慣,雖然如果你不設(shè)置此屬性,OFiz也會自己建外建.
        rel-entity-name的屬性值指向關(guān)聯(lián)的實(shí)體名稱
        title用來區(qū)分兩個(gè)實(shí)體之間的多重關(guān)系
        <key-map>節(jié)點(diǎn)定義關(guān)聯(lián)中使用到的字段.field-name指向本實(shí)體內(nèi)的引用字段,rel-field-name定義關(guān)聯(lián)的實(shí)體字段,你可以通過多個(gè)字段組合關(guān)聯(lián)
        當(dāng)你訪問一個(gè)關(guān)聯(lián),你可以使用title+entityName作為參數(shù)調(diào)用.getRelated("")或.getRelatedOne("")方法.在關(guān)聯(lián)為"many"時(shí)使用.getRelated("")是恰當(dāng)?shù)?因?yàn)樗祷匾粋€(gè)List,同樣在關(guān)聯(lián)為"one"時(shí)通過.getRelatedOne("")方法獲得一個(gè)值.

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

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

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

    你可以查看applications/marketing/entitydef/entitymodel.xml的底部內(nèi)容學(xué)習(xí),及通過applications/marketing/webapp/marketing/WEB-INF/actions/reports學(xué)習(xí)beanshell腳本的調(diào)用.

    未完待續(xù)>>

    本文檔譯自ofbiz 4.0 cookbooks,本人翻譯,歡迎轉(zhuǎn)載,請注明出處.
    posted on 2008-10-24 16:26 shanghai_spark 閱讀(1901) 評論(0)  編輯  收藏 所屬分類: opentaps
    主站蜘蛛池模板: 亚洲精品无码mv在线观看网站| 欧美最猛性xxxxx免费| 亚洲AV网站在线观看| 亚洲色大成网站www永久男同| 免费人成网站在线观看10分钟| 99久久亚洲精品无码毛片| 污污网站免费观看| 亚洲酒色1314狠狠做| 国产h视频在线观看网站免费| 亚洲欧洲日产国码www| 久草视频免费在线观看| 亚洲砖码砖专无区2023| 韩国二级毛片免费播放| 婷婷亚洲综合五月天小说在线| 亚洲精品无码99在线观看| 中文字幕免费人成乱码中国| 亚洲AV无码专区电影在线观看| 99久久国产免费中文无字幕| 亚洲日韩乱码久久久久久| 中文字幕影片免费在线观看| 337P日本欧洲亚洲大胆精品| 亚洲精品国产精品乱码不卞| 国产日韩AV免费无码一区二区| 亚洲一级二级三级不卡| 四虎成人免费大片在线| 精品国产污污免费网站入口| 亚洲欧洲日产国产综合网| 18禁超污无遮挡无码免费网站国产| 亚洲AV成人一区二区三区观看| 久久久久亚洲?V成人无码| 在线日本高清免费不卡| 亚洲欧好州第一的日产suv| 亚洲欧洲日产国码高潮αv| 三年片在线观看免费观看大全动漫| 国产成人精品亚洲2020| 亚洲色欲久久久久综合网| 18以下岁毛片在免费播放| 日韩精品亚洲专区在线影视| 亚洲国产精品成人精品无码区| 最近免费中文字幕大全视频| 丰满妇女做a级毛片免费观看|