锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品综合久久,亚洲视频在线观看地址,亚洲日本天堂在线http://www.tkk7.com/hellxoul/category/51021.htmlzh-cnThu, 08 Mar 2012 00:35:35 GMTThu, 08 Mar 2012 00:35:35 GMT60ofbiz涔媏ntity 瀹炰綋瑙f瀽http://www.tkk7.com/hellxoul/archive/2012/03/08/371442.htmlhellxoulhellxoulThu, 08 Mar 2012 00:34:00 GMThttp://www.tkk7.com/hellxoul/archive/2012/03/08/371442.htmlhttp://www.tkk7.com/hellxoul/comments/371442.htmlhttp://www.tkk7.com/hellxoul/archive/2012/03/08/371442.html#Feedback0http://www.tkk7.com/hellxoul/comments/commentRss/371442.htmlhttp://www.tkk7.com/hellxoul/services/trackbacks/371442.htmlofbiz 涔媏ntity瀹炰綋
1. 瀹炰綋瀹氫箟鏂囦歡
瀹炰綋瀹氫箟鏂囦歡涓鑸瓨鏀句綅緗槸鍦ㄥ搴旀ā鍧楃殑entity鏂囦歡澶逛笅闈?浠arty涓轟緥,party鐨勫疄浣撳畾涔夋枃浠惰礬寰勪負(fù)%ofbiz-home%\applications\party\entitydef\entitymodel.xml銆?
閫氳繃瀵瑰簲妯″潡鐨刼fbiz-component.xml榪涜鍔犺澆銆?
   <entity-resource type="model" reader-name="main" loader="main" location="entitydef/entitymodel.xml"/>
<entity-resource type="model" reader-name="main" loader="main" location="entitydef/entitymodel_old.xml"/>
瀹炰綋瀹氫箟鏂囦歡鍙互涓哄涓?
2. 瀹炰綋綾誨瀷
2.1. 鏅氬疄浣?
<entity entity-name="TenantDataSource" package-name="org.ofbiz.entity.tenant">
        <description>
            There should be one record for each tenant and each group-map for the active delegator.
            The jdbc fields will override the datasource -> inline-jdbc values for the per-tenant delegator.
        </description>
        <field name="tenantId" type="id-ne"/>
        <field name="entityGroupName" type="name"/>
        <field name="jdbcUri" type="long-varchar"/>
        <field name="jdbcUsername" type="long-varchar"/>
        <field name="jdbcPassword" type="long-varchar"></field>
        <prim-key field="tenantId"/>
        <prim-key field="entityGroupName"/>
        <relation type="one" fk-name="TNTDTSRC_TNT" rel-entity-name="Tenant">
        <key-map field-name="tenantId"/>
        </relation>
</entity>
鏅氬疄浣撳拰鏁版嵁搴撲腑鐨勮〃鏄竴涓瀵瑰簲鐨勩傜▼搴忎細(xì)鏍規(guī)嵁瀹炰綋瀹氫箟鍦ㄦ暟鎹簱涓垱寤鴻〃錛岀儲(chǔ)寮曪紝澶栭敭綰︽潫絳夈?
2.2. 瑙嗗浘瀹炰綋
<view-entity entity-name="WorkEffortAssocView"
            package-name="org.ofbiz.workeffort.workeffort"
            title="Work Effort Association Entity with Name">
      <member-entity entity-alias="WA" entity-name="WorkEffortAssoc"/>
      <member-entity entity-alias="WETO" entity-name="WorkEffort"/>
      <alias-all entity-alias="WA"/>
      <alias entity-alias="WETO" name="workEffortToName" field="workEffortName"/>
      <alias entity-alias="WETO" name="workEffortToSetup" field="estimatedSetupMillis"/>
      <alias entity-alias="WETO" name="workEffortToRun" field="estimatedMilliSeconds"/>
      <alias entity-alias="WETO" name="workEffortToParentId" field="workEffortParentId"/>
      <alias entity-alias="WETO" name="workEffortToCurrentStatusId" field="currentStatusId"/>
      <alias entity-alias="WETO" name="workEffortToWorkEffortPurposeTypeId" field="workEffortPurposeTypeId"/>
      <alias entity-alias="WETO" name="workEffortToEstimatedStartDate" field="estimatedStartDate"/>
      <alias entity-alias="WETO" name="workEffortToEstimatedCompletionDate" field="estimatedCompletionDate"/>
      <alias entity-alias="WETO" name="workEffortToActualStartDate" field="actualStartDate"/>
      <alias entity-alias="WETO" name="workEffortToActualCompletionDate" field="actualCompletionDate"/>
      <view-link entity-alias="WA" rel-entity-alias="WETO">
        <key-map field-name="workEffortIdTo" rel-field-name="workEffortId"/>
      </view-link>
      <relation type="one-nofk" fk-name="WK_EFFRTASSV_FWE" title="From" rel-entity-name="WorkEffort">
        <key-map field-name="workEffortIdFrom" rel-field-name="workEffortId"/>
      </relation>
</view-entity>
View entity 涓鑸敤鍋氬琛ㄨ繛鎺ュ鏉傛煡璇紝view entity 涓嶄細(xì)鍦ㄦ暟鎹簱涓弽鏄犲嚭鏉ャ?
2.3. 鎵╁睍瀹炰綋
<extend-entity entity-name="UserLogin">
        <field name="partyId" type="id"></field>
        <relation type="one" fk-name="USER_PARTY" rel-entity-name="Party">
            <key-map field-name="partyId"/>
        </relation>
        <relation type="one-nofk" rel-entity-name="Person">
            <key-map field-name="partyId"/>
        </relation>
        <relation type="one-nofk" rel-entity-name="PartyGroup">
            <key-map field-name="partyId"/>
        </relation>
</extend-entity>
緇ф壙宸插瓨鍦ㄧ殑瀹炰綋騫跺鍏惰繘琛屾墿灞曘?
2.4. 鍔ㄦ佸疄浣?
DynamicViewEntity salesUsageViewEntity = new DynamicViewEntity();
            salesUsageViewEntity.addMemberEntity("OI", "OrderItem");
            salesUsageViewEntity.addMemberEntity("OH", "OrderHeader");
            salesUsageViewEntity.addMemberEntity("ItIss", "ItemIssuance");
            salesUsageViewEntity.addMemberEntity("InvIt", "InventoryItem");
            salesUsageViewEntity.addViewLink("OI", "OH", Boolean.valueOf(false), ModelKeyMap.makeKeyMapList("orderId"));
            salesUsageViewEntity.addViewLink("OI", "ItIss", Boolean.valueOf(false), ModelKeyMap.makeKeyMapList("orderId", "orderId", "orderItemSeqId", "orderItemSeqId"));
            salesUsageViewEntity.addViewLink("ItIss", "InvIt", Boolean.valueOf(false), ModelKeyMap.makeKeyMapList("inventoryItemId"));
    salesUsageViewEntity.addAlias("OI", "productId");
    salesUsageViewEntity.addAlias("OH", "statusId");
    salesUsageViewEntity.addAlias("OH", "orderTypeId");
    salesUsageViewEntity.addAlias("OH", "orderDate");
    salesUsageViewEntity.addAlias("ItIss", "inventoryItemId");
    salesUsageViewEntity.addAlias("ItIss", "quantity");
salesUsageViewEntity.addAlias("InvIt", "facilityId");
EntityListIterator salesUsageIt = delegator.findListIteratorByCondition(salesUsageViewEntity,
EntityCondition.makeCondition(
UtilMisc.toList(
         EntityCondition.makeCondition("facilityId", EntityOperator.EQUALS, facilityId),
          EntityCondition.makeCondition("productId", EntityOperator.EQUALS, productId),
            EntityCondition.makeCondition("statusId",
EntityOperator.IN,
UtilMisc.toList("ORDER_COMPLETED", "ORDER_APPROVED", "ORDER_HELD")),
        EntityCondition.makeCondition("orderTypeId", EntityOperator.EQUALS, "SALES_ORDER"),
           EntityCondition.makeCondition("orderDate", EntityOperator.GREATER_THAN_EQUAL_TO, checkTime)
),
EntityOperator.AND),null, null, null, null
);
鍦ㄧ▼搴忎腑鎵嬪姩鍒涘緩瀹炰綋錛屽鍏惰繘琛屾煡璇€?
3瀹炰綋瀹氫箟
3.1. 鍛藉悕瑙勫垯
瀹炰綋鍚嶇О錛坋ntity-name錛夐瀛楁瘝澶у啓錛屽鏋滃疄浣撳悕縐扮敱澶氫釜鍏抽敭瀛楃粍鎴愶紝閭d箞鍏抽敭瀛楅瀛楁瘝澶у啓錛屼緥濡俥ntity- name="TenantDataSource"錛宱fbiz 浼?xì)鍦ㄥ垱寰忔暟鎹簱琛ㄧ殑鏃跺欐牴鎹甧ntity-name 瀹炰綋鍚嶇О闄ら瀛楁瘝涔嬪鐨勫ぇ鍐欏瓧姣嶅墠鍔?#8220;_”錛屾墍浠ntity-name="TenantDataSource"鐢熸垚鐨勬暟鎹簱琛ㄥ悕涓?“Tenant_Data_Source”.
鎵浠ヨ鎺у埗entity-name 瀹炰綋鍚嶇О涓嶈瓚呰繃25涓瓧姣嶃?
Field 琛ㄥ瓧孌碉紝鍛藉悕瑙勫垯涓庡疄浣撳悕縐板樊涓嶅錛屽敮涓涓嶅悓鐨勬槸棣栧瓧姣嶅皬鍐欍?
3.2. 瀹炰綋涓庢暟鎹簱鐨勫叧鑱?
    <entity-group group="org.ofbiz.olap" entity="SalesInvoiceItemFact"/>
<entity-group group="org.ofbiz.olap" entity="SalesInvoiceItemStarSchema"/>
Entity-group錛堜竴鑸畾涔夊湪鍚勪釜妯″潡鐨刓entitydef\entitygroupXXX.xml涓級(jí) 瀵瑰疄浣撹繘琛屽垎緇勶紝浣夸笉鍚岀殑瀹炰綋鍒嗗睘涓嶅悓鐨別ntity-group銆?
涔熻浣犱細(xì)鍙戠幇騫朵笉鏄瘡涓猠ntity閮借繘琛屼簡(jiǎn)entity-group 鍒嗙粍銆備簨瀹炰笂濡傛灉浣犳病鏈夊瀹炰綋榪涜鍒嗙粍褰掔被鐨勮瘽錛岀郴緇熷惎鍔ㄧ殑鏃跺欎粬浼?xì)灏嗗疄浣撻粯璁ゅ綊绫诲?org.ofbiz"涓?
鏌ョ湅鏁版嵁搴撳畾涔夋枃浠?ofbiz_home%/framework/entity/config/entityengine.xml
鍙互鍙戠幇錛?
<delegator name="default" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" distributed-cache-clear-enabled="false">
        <group-map group-name="org.ofbiz" datasource-name="localderby"/>
        <group-map group-name="org.ofbiz.olap" datasource-name="localderbyolap"/>
        <group-map group-name="org.ofbiz.tenant" datasource-name="localderbytenant"/>
</delegator>
鍙互鍙戠幇delegator 灝嗗涓猤roup-name緇勭粐鍒頒竴璧峰茍灝唃roup-name涓?datasource-name瀵瑰簲璧鋒潵錛宒atasource-name鍙堟槸浠涔堬紵閫氳繃鏌ョ湅 entityengine.xml 鎴戜滑鍙互鍙戠幇錛?
<datasource name="localderby"
            helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"
            schema-name="OFBIZ"
            field-type-name="derby"
            check-on-start="true"
            add-missing-on-start="true"
            use-pk-constraint-names="false"
            use-indices-unique="false"
            alias-view-columns="false"
            use-order-by-nulls="true">
        <read-data reader-name="seed"/>
        <read-data reader-name="seed-initial"/>
        <read-data reader-name="demo"/>
        <read-data reader-name="ext"/>
        <inline-jdbc
                jdbc-driver="org.apache.derby.jdbc.EmbeddedDriver"
                jdbc-uri="jdbc:derby:ofbiz;create=true"
                jdbc-username="ofbiz"
                jdbc-password="ofbiz"
                isolation-level="ReadCommitted"
                pool-minsize="2"
                pool-maxsize="250"
                time-between-eviction-runs-millis="600000"/>
</datasource>
Datasource瀹氫箟浜?jiǎn)鏁版嵁搴撻┍鍔ㄥQ屾暟鎹簱鐢ㄦ埛鍚嶃佸瘑鐮佺瓑錛屾墍浠atasource灝辨槸鎴戜滑璇寸殑鏁版嵁搴撱?
鎬葷粨涓涓嬶細(xì)鎴戜滑閫氳繃entity-group灝嗗悇涓疄浣撳拰鏁版嵁搴撲箣闂村叧鑱旇搗鏉ワ紝鐒跺悗鍐嶅皢涓涓垨澶氫釜鏁版嵁搴撳綊灞炲埌涓涓猟elegator 涓紝閭f垜浠張鏄庝箞浣跨敤鏁版嵁搴撹繘琛屾暟鎹簱鎿嶄綔鐨勫憿錛燂紵鏌ョ湅姣忎釜妯″潡搴旂敤搴曚笅鐨剋eb.xml 鎴戜滑鍙互鍙戠幇錛?
<context-param>
        <param-name>entityDelegatorName</param-name>
        <param-value>default</param-value>
        <description>The Name of the Entity Delegator to use, defined in entityengine.xml</description>
</context-param>
閽堝涓嶅悓鐨勫簲鐢紝鎴戜滑鍙互浣跨敤涓嶅悓鐨刣elegator .濡傛灉涓嶅畾涔夊垯浣跨敤default.
鍦ㄥ惎鍔ㄥ悇涓簲鐢ㄦā鍧楃殑鏃跺欙紝緋葷粺浼?xì)鏍规嵁web.xml 涓殑 entityDelegatorName
鐢熸垚delegator 瀵硅薄錛岀劧鍚庡皢delegator 瀵硅薄瀛樻斁鍒皊ervletContext 涓鐢ㄣ?
鎴戜滑灝辨槸浣跨敤榪欎釜delegator瀵硅薄鎵ц鏁版嵁搴撴搷浣滐紝浠ュ悗浼?xì)浠嬀l嶅浣曚嬌鐢ㄣ?
delegator = DelegatorFactory.getDelegator(delegatorName);
    servletContext.setAttribute("delegator", delegator);


3.3. no-auto-stamp
no-auto-stamp="false"
entity 灞炴т箣涓錛?灝嗘鍊艱緗負(fù)true 錛?鍒?鍒涘緩鏁版嵁搴撹〃鏃跺皢鏉ヤ笉鍒涘緩lastUpdatedStamp銆乴astUpdatedTxStamp銆乧reatedStamp銆乧reatedTxStamp
榪欏洓涓瓧孌點(diǎn)?
3.4. Field.type
<field name="tenantId" type="id-ne"/>
Type , 灝嗘暟鎹瓧孌電被鍨?涓?java 綾誨瀷鍏寵仈璧鋒潵鐨勮緗?瀹氫箟鏂囦歡璺緞涓猴細(xì)
%ofbiz_home%\framework\entity\fieldtype\fieldtypeXXXXX.xml
鍏朵腑XXXX涓轟綘浣跨敤鐨勬暟鎹簱鍚嶇О銆?
<field-type-def type="email" sql-type="VARCHAR(255)" java-type="String"/>
3.5. prim-key
<prim-key field="agreementId"/>
瀹氫箟涓婚敭錛屽叾涓璮ield 闇瑕佹槸宸茬粡琚畾涔夎繃鐨勫瓧孌碉紝鍗砯ield 瀹氫箟榪囥?
瀹炰綋鏀寔緇勫悎涓婚敭錛屽嵆涓涓疄浣撳畾涔変腑鍙互鏈夊涓猵rim-key鑺傜偣銆?
濡傛灉涓嶅畾涔変富閿殑璇濓紝鏁版嵁搴撴槸涓嶄細(xì)鍒涘緩琛ㄧ殑銆?

3.6. relation
relation 瀹氫箟褰撳墠瀹炰綋鍜屽叾浠栧疄浣撲箣闂寸殑鍏崇郴錛屼竴鑸敤鍋氬垱寤哄閿拰鏍規(guī)嵁鍏崇郴鏌ヨ浣跨敤銆?
錛歳el-entity-name錛氳鍏寵仈瀹炰綋鍚嶇О銆?
錛歠k-name錛氬鏋滃垱寤哄閿紝閭d箞瀹氫箟澶栭敭鐨勫悕縐般?
錛歵itle錛氱粰褰撳墠鍏崇郴璧蜂釜鍒悕銆?
: field-name:褰撳墠瀹炰綋鐨勫瓧孌碉紝鎸囨槑褰撳墠瀹炰綋鐨勫摢涓瓧孌典笌琚叧緋誨疄浣撴湁鍏崇郴銆?
錛歳el-entity-name錛氳鍏崇郴瀹炰綋鍚嶇О
錛歳el-field-name錛氳鍏崇郴鐨勫疄浣撶殑瀛楁鍚嶇О銆傛寚鏄巉ield-name鍜岃鍏崇郴瀹炰綋鐨勫摢涓瓧孌墊湁鍏崇郴銆傚鏋渞el-field-name涓巉ield-name鐩稿悓錛岄偅涔坮el-field-name鍙互涓嶅畾涔夈?
錛歵ype="one-nofk"錛氬叧鑱旂被鍨嬶紝涓昏鏈変笁綾?“one”銆?#8221;one-nofk”銆?#8221;many”
寰堝璧勬枡涓婂皢one 瑙i噴涓?one-to-one ,灝?many 瑙i噴涓?one-to-many .
涓漢鎰熻涓嶆槸寰堝ソ鐞嗚В錛屽鏋滀粠鏁版嵁搴撴柟闈㈠幓鐞嗚В鐨勮瘽錛宱ne銆乷ne-nofk  鐨勪嬌鐢ㄦ潯浠舵槸琚叧緋誨疄浣撶殑rel-field-name涓轟富閿紝鑰宮any 鐨勪嬌鐢ㄦ潯浠舵槸琚叧緋誨疄浣撶殑rel-field-name涓洪潪涓婚敭銆傝宱ne 涓? one-nofk 鐨勫尯鍒湪浜巓ne浼?xì)鍦ㄦ暟鎹簱琛ňl撴瀯涓垱寤哄閿害鏉燂紝鑰宱ne-nofk 鍒欎笉浼?xì)銆?
Relation 闄や簡(jiǎn)鐢ㄦ潵鍒涘緩澶栭敭綰︽潫涔嬪榪樿鐢ㄦ潵鍋氬叧緋繪煡璇€?
褰撹闂叧緋葷殑鏃跺欏彲浠ョ敤 .getRelated("") 鎴栬?.getRelatedOne("") 銆傜敤 title+entityName 浣滀負(fù)鍙傛暟銆?
褰撳疄浣撲竴涓?many"鍏崇郴鐨勬椂鍊欎嬌鐢╣etRelated 榪斿洖涓涓垪琛紝褰撳疄浣撲竴涓?one"鍏崇郴鐨勬椂鍊欎嬌鐢╣etRelatedOne 榪斿洖涓涓疄浣撳璞°?

3.7. Index
<index name="WEFF_KWD_KWD" unique="false">
            <index-field name="keyword" function="lower"/>
</index>
鍒涘緩绱㈠紩銆?
: name:緇欑儲(chǔ)寮曡搗涓埆鍚嶃?
: unique:鏄惁鍞竴绱㈠紩銆?
錛歩ndex-field錛歯ame錛氬瀹炰綋鍝釜瀛楁鍒涘緩绱㈠紩錛宖unction寰呯‘瀹氥?
4. 瀹氫箟瑙嗗浘瀹炰綋
4.1. Member-entity
<member-entity entity-alias="EMPPOS" entity-name="EmplPosition"/>
      <member-entity entity-alias="EMPPOSFUL" entity-name="EmplPositionFulfillment"/>
member-entity棣栧厛瀹氫箟褰撳墠瑙嗗浘瀹炰綋鍙兘浼?xì)鐢ㄥ埌鐨勫疄浣撱俥ntity-name瀹炰綋鍚嶇О
entity-alias瀹炰綋鍒悕銆傚疄浣撳畾涔夐『搴忓緢閲嶈錛岄櫎浜?jiǎn)绗竴涓疄浣撲箣澶栧叾浠栭兘鏄鍏寵仈瀹炰綋銆?

4.2. alias
<alias entity-alias="EMPPOSFUL" name="partyId" field="partyId"/>
    <alias entity-alias="EMPPOSFUL" name="emplPositionId" function="count"/>
<alias entity-alias="EMPPOSREPST" name="emplPositionIdReportingTo" group-by="true"/>

Alias 瀹氫箟褰撳墠瑙嗗浘瀹炰綋涓細(xì)鐢ㄥ埌鐨勫瓧孌點(diǎn)俥ntity-alias涓哄疄浣撳埆鍚嶏紝鎸囧綋鍓嶅瓧孌墊槸鍝釜瀹炰綋鐨勶紝field瀹炰綋瀛楁鍚嶇О錛宯ame瀛楁鍒悕銆?group-by渚濇嵁褰撳墠瀛楁榪涜group-by 鍒嗙粍鏌ヨ銆俧unction瀵瑰綋鍓嶅瓧孌墊墽琛宖unction 鍑芥暟澶勭悊 銆?
4.3. alias-all
<alias-all entity-alias="ODD" prefix="orderDate" group-by="true">
            <exclude field="dimensionId"/>
</alias-all>
alias-all 灝嗘煇涓疄浣撶殑鍏ㄩ儴瀛楁瀹氫箟榪涙潵銆侾refix瀹氫箟浠ヨ瀹氬瓧孌靛瓧絎﹀紑澶寸殑瀛楁銆?
Exclude 灝嗗疄浣撲腑鏌愪簺瀛楁鍓旈櫎鍑哄幓銆?

4.4. View-link
<view-link entity-alias="SOIF" rel-entity-alias="ODD" rel-optional="false">
    <key-map field-name="orderDateDimId" rel-field-name="dimensionId"/>
   </view-link>
瑙嗗浘瀹炰綋涓璻elation 鍙兘鐢ㄦ潵鍋氬叧緋繪煡璇€?
鑰寁iew-link 鐢ㄦ潵鍋?join 鍏寵仈鏌ヨ銆傚湪entityengine.xml涓?lt;datasource ..>鍏冪礌褰撲腑鐨刯oin-style灞炴у綋涓緗綘鐨勬暟鎹簱join璇硶銆?
: rel-optional:鍏寵仈綾誨瀷錛岄粯璁ゆ槸鍐呰繛鎺ワ紝濡傛灉灝嗘灞炴у艱涓簍rue 錛屽垯涓哄榪炴帴

4.5. Entity-condition
<entity-condition>
     <order-by field-name="sequenceId"/>
</entity-condition>
寰呭畾

4.6. 澶嶆潅瀛楁
<alias entity-alias="OI" name="quantityOrdered" function="sum">
          <complex-alias operator="-">
              <complex-alias-field entity-alias="OI" field="quantity" default-value="0"/>
              <complex-alias-field entity-alias="OI" field="cancelQuantity" default-value="0"/>
          </complex-alias>
</alias>
緇撴灉涓猴細(xì)
Select  SUM((COALESCE(OI.QUANTITY, 0) - COALESCE(OI.CANCEL_QUANTITY, 0))) 銆傘傘傘傘傘?
涓涓己鐪佸兼槸涓涓壇濂界殑涔?fàn)鎯Q屽惁鍒欏綋浠栦滑涔嬩腑鏈変竴涓負(fù)絀哄氨浼?xì)瀵艰嚧缁撴灉湄?fù)絀?
  榪欎釜鎿嶄綔鍙互鏀寔浣犱嬌鐢ㄦ暟鎹簱鐨勬墍鏈夊嚱鏁頒緥濡?nbsp; +, -, * 鍜?/錛屽瓧絎︿覆榪炴帴絎|銆?
浣犱篃鍙互娣誨姞涓涓?function="" 瀹炵幇min, max, sum, avg, count, count-distinct, upper 鍜?lower 鍦?complex-alias-field涓傛瘮濡傦細(xì)
<alias entity-alias="OI" >
      <complex-alias operator="-">
          <complex-alias-field entity-alias="OI" field="quantity" default-value="0" function="sum"/>
          <complex-alias-field entity-alias="OI" field="cancelQuantity" default-value="0"
function="sum"/>
      </complex-alias>
  </alias>
緇撴灉涓篠ELECT (SUM(COALESCE(OI.QUANTITY,'0')) - SUM(COALESCE(OI.CANCEL_QUANTITY,'0')))


hellxoul 2012-03-08 08:34 鍙戣〃璇勮
]]>
OFBiz瀹炰綋寮曟搸寮鍙?http://www.tkk7.com/hellxoul/archive/2012/03/08/371441.htmlhellxoulhellxoulThu, 08 Mar 2012 00:32:00 GMThttp://www.tkk7.com/hellxoul/archive/2012/03/08/371441.htmlhttp://www.tkk7.com/hellxoul/comments/371441.htmlhttp://www.tkk7.com/hellxoul/archive/2012/03/08/371441.html#Feedback0http://www.tkk7.com/hellxoul/comments/commentRss/371441.htmlhttp://www.tkk7.com/hellxoul/services/trackbacks/371441.html
* 淇濇寔瀹炰綋鍚嶇О灝戜簬25涓瓧絎?br /> 榪欎釜闄愬埗涓昏鏄負(fù)浜?jiǎn)Oracle鍙敮鎸?0瀛楃浠ュ唴鐨勬暟鎹簱瀵硅薄鍚嶇О,鍐嶅姞涓奜FBiz浼?xì)鑷姩鍦ㄥ崟璇嶄箣闂村姞涓?_",鎵浠ュ氨寰楀嚭浜?jiǎn)杩欎箞涓檺鍒?

* 鍏寵仈鐨勫伐浣滄柟寮?br /> 瀹冧滑瀹氫箟浜巈ntitymodel.xml鏂囦歡涓殑<entity>孌碉紝紺轟緥濡備笅錛?br />
      <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鐨勫睘鎬у兼槸鏁版嵁搴撳閿悕.涓鴻嚜宸辯殑澶栭敭鍛藉悕鏄竴涓ソ鐨勪範(fàn)鎯?铏界劧濡傛灉浣犱笉璁劇疆姝ゅ睘鎬?OFiz涔熶細(xì)鑷繁寤哄寤?
     rel-entity-name鐨勫睘鎬у兼寚鍚戝叧鑱旂殑瀹炰綋鍚嶇О
     title鐢ㄦ潵鍖哄垎涓や釜瀹炰綋涔嬮棿鐨勫閲嶅叧緋?br />      <key-map>鑺傜偣瀹氫箟鍏寵仈涓嬌鐢ㄥ埌鐨勫瓧孌?field-name鎸囧悜鏈疄浣撳唴鐨勫紩鐢ㄥ瓧孌?rel-field-name瀹氫箟鍏寵仈鐨勫疄浣撳瓧孌?浣犲彲浠ラ氳繃澶氫釜瀛楁緇勫悎鍏寵仈
     褰撲綘璁塊棶涓涓叧鑱?浣犲彲浠ヤ嬌鐢╰itle+entityName浣滀負(fù)鍙傛暟璋冪敤.getRelated("")鎴?getRelatedOne("")鏂?娉?鍦ㄥ叧鑱斾負(fù)"many"鏃朵嬌鐢?getRelated("")鏄伆褰撶殑,鍥犱負(fù)瀹冭繑鍥炰竴涓狶ist,鍚屾牱鍦ㄥ叧鑱斾負(fù)"one"鏃墮?榪?getRelatedOne("")鏂規(guī)硶鑾峰緱涓涓?

* view-entities鐩稿叧鍐呭
view-entities鐨勫姛鑳介潪甯稿己澶?瀹冨厑璁鎬綘鍙互鍒涘緩涓涓猨oin-like鏌ヨ,鍗充嬌浣犵殑鏁版嵁搴撲笉鏀寔join.
鍏充簬浣犳暟鎹簱鐨刯oin璇硶瀛樻斁鍦╡ntityengine.xml鐨刣atasource鑺傜偣涓嬬殑join-style灞炴т腑.
褰撲綘閫氳繃<view-link...>鑺傜偣灝嗕袱涓婂疄浣撹繛鎺ヨ搗鏉ユ椂,璁頒綇:
1. 瀹炰綋鍚嶇О欏哄簭鏄噸瑕佺殑
2. 榛樿鐨勮繛鎺ユ柟寮忔槸inner join(鍗沖悓鏍風(fēng)殑鍊煎瓨鍦ㄤ簬涓や釜瀹炰綋綾諱腑),澶栬繛鎺ラ渶瑕佷嬌鐢╮el-optional="true"
濡傛灉澶氫釜瀹炰綋涓嫢鏈夌浉鍚岀殑瀛楁鍚嶇О,姣斿statusId,緇撴灉闆嗕腑鐨剆tatusId浣跨敤絎竴涓疄浣撲腑鐨勮鍒?鍏跺畠瀹炰綋涓殑鍚屽悕鍒楀皢琚涪寮?濡傛灉浣犳兂瑕?鍚屾椂鑾峰緱榪欎簺鍒?浣犻渶瑕侀氳繃鍦ㄥ叾涔嬪墠鍔犲叆<alias-all>鑺傜偣,涓涓柟寮忔槸浣跨敤<alias ..>鑺傜偣鏉ヤ負(fù)涓嶅悓瀹炰綋鐨勫悓鍚嶅瓧孌佃搗鍒悕,紺轟緥:
<alias entity="EntityOne" name="entityOneStatusId" field="statusId"/>
<alias entity="EntityTwo" name="entityTwoStatusId" field="statusId"/>
鍙︿竴縐嶆柟娉曟槸鍦?lt;alias-all>鑺傜偣涓嬌鐢?lt;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'
闇瑕佸寘鍚瓧孌祐isitId浠ュ強(qiáng)function="count" 鏍囩,trackingCodeId闇鍔犱笂group-by="true"鏍囩,fromDate闇瑕佸姞涓奼roup-by="false"鏍囩

鍦ㄤ綘榪涜鏌ヨ鏃?鏈変竴浠墮潪甯擱噸瑕佺殑浜嬫儏闇瑕佹敞鎰?姣斿璇磀elegator.findByCondition鏂規(guī)硶,浣犲繀欏繪寚瀹氭鍑虹殑瀛楁鍒楄〃,騫朵笖浣犱笉鑳?鎸囧畾fromDate瀛楁,鍚﹀垯浣犲皢寰楀埌涓涓敊璇?榪欏氨鏄負(fù)webtools涓嶈兘澶熶嬌鐢╲iew-entities鏉ユ煡鐪嬬殑鍘熷洜.

浣犲彲浠ユ煡鐪媋pplications/marketing/entitydef/entitymodel.xml鐨勫簳閮ㄥ唴瀹瑰涔?鍙?qiáng)閫氳繃 applications/marketing/webapp/marketing/WEB-INF/actions/reports瀛︿範(fàn) beanshell鑴氭湰鐨勮皟鐢?

* 鎴戝彲浠ュ湪entitymodel.xml鏂囦歡涓畾涔夎嚜宸辯殑view-entities鍚?

涓嶈兘, 浣犲彲浠ュ姩鎬佸畾涔夊畠浠?浣犲彲浠ユ煡鐪媜rg.ofbiz.party.party.PartyServices涓殑findParty鏂規(guī)硶瀛︿範(fàn)瀹冪殑浣跨敤

* 濡傛灉涓烘湁鏁堟湡闂村垱寤烘潯浠?

鎴戜滑鎻愪緵浜?jiǎn)涓緇勯潪甯告湁鐢ㄧ殑鏂規(guī)硶EntityUtil.getFilterByDateExpr ,瀹冭兘榪斿洖涓涓狤ntityConditionList鏍規(guī)嵁鏈夋晥鏈熼棿鏉ョ瓫閫変竴涓粨鏋滈泦.

* 濡備綍鍦ㄥぇ鏁版嵁緇撴灉闆嗕笅宸ヤ綔

濡傛灉浣犳鍑轟竴涓ぇ鐨勬暟鎹粨鏋滈泦,浣犲簲褰撲嬌鐢‥ntityListIterator閫氳繃榪唬鏂瑰紡璇誨彇鏁版嵁,鑰岄潪List.
紺轟緥,濡傛灉浣犱嬌鐢?

List products = delegator.findAll("Product");


浣犲彲鑳借幏寰椾竴涓?java.lang.OutOfMemoryError". 榪欐槸鐢變簬浣犻氳繃findAll, findByAnd, findByCondition絳夋柟娉曟潵鑾峰緱涓涓ぇ鐨勫唴瀛樻暟鎹粨鏋滈泦瀵艱嚧鍐呭瓨婧㈠嚭. 鍦ㄨ繖縐嶆儏鍐典笅, 搴旇浣跨敤EntityListIterator榪唬鏂瑰紡鏉ヨ鍙栦綘鐨勬暟鎹? 榪欎釜紺轟緥搴旀敼鍐欐垚:

productsELI = delegator.findListIteratorByCondition("Product", new EntityExpr("productId", EntityOperator.NOT_EQUAL, null), UtilMisc.toList("productId"), null);

娉ㄦ剰鑾峰緱EntityListIterator鐨勬柟娉曞彧鐢ㄩ氳繃鏉′歡, 鎵浠ヤ綘闇瑕佸皢浣犵殑鏉′歡閲嶅啓涓篍ntityExpr (鍦ㄦ嬈℃儏鍐典笅,productId鏄富閿瓧孌典笉鍙兘涓虹┖鐨? 鎵浠ュ皢榪斿洖鎵鏈塒roudct瀹炰緥,)鎴?EntityConditionList.

姝ゆ柟娉曞弬鏁頒腑鍖呭惈媯(gè)鍑虹殑瀛楁(榪欓噷涓簆roductId)浠ュ強(qiáng)鎺掑簭瀛楁(榪欓噷涓嶉渶瑕?鎵浠ヨ祴浜?jiǎn)null)

浣犲彲浠ヤ紶閫掍竴涓猲ull浣滀負(fù)EntityCondition鍙傛暟鏉ヨ幏寰楁墍鏈夌粨鏋?鐒跺悗榪欎笉涓瀹氬湪鎵鏈夋暟鎹簱涓嬮兘鑳芥甯稿伐浣? 鍦╩axdb鍙?qiáng)鍏跺畠涓嶅父鐢ㄧ殑鏁版嵁搴撲笅鏃朵綘瑕仦畯蹇?jī)浣跨敤榪欎簺楂樼駭鍔熻兘.

* 濡備綍浣跨敤EntityListIterator

褰撴垜浠氳繃EntityListIterator榪唬璁塊棶鏁版嵁鏃? 閫氬父鏄繖鏍?

while ((nextProduct = productsELI.next()) != null) {
.
    
// operations on nextProduct
}


鍦‥ntityListIterator 涓嬌鐢?.hasNext()鏂規(guī)硶鏄竴縐嶄笉緇忔祹鐨勫仛娉?

鍦ㄤ綘瀹屾垚浣犵殑鎿嶄綔鍚?瑕佽寰楀叧闂榪唬

productsELI.close();

* 濡備綍鏌ヨ鏃犻噸緇撴灉闆?/p>

褰撳墠鍙兘閫氳繃list iterator鏂規(guī)硶騫舵寚瀹欵ntityFindOptions鍙傛暟,紺轟緥濡備笅:

     listIt = delegator.findListIteratorByCondition(entityName, findConditions,
            
null, // EntityConditions鍙傛暟
             fieldsToSelectList,
             fieldsToOrderByList,  
            
            
//鍏抽敭閮ㄥ垎.   絎竴涓猼rue琛ㄧず"specifyTypeAndConcur"
            
// 絎簩涓猼rue鎸囧畬鏄竴涓護(hù)閲嶆煡璇?   鏄劇劧鍦ㄥ疄浣撳紩鎿庝腑鍙兘閫氳繃榪欎釜鏂規(guī)硶鏉ヨ繘琛屾護(hù)閲嶆煡璇?/span>
            new EntityFindOptions(true, EntityFindOptions.TYPE_SCROLL_INSENSITIVE, EntityFindOptions.CONCUR_READ_ONLY, true));

鍦╩inilang, 瀹冧細(xì)鏇寸畝鍗?

  <entity-condition entity-name="${entityName}" list-name="${resultList}" distinct="true">
     
<select field="${fieldName}"/>
     .

鍘熸枃錛?div>http://hi.baidu.com/longer84/blog/item/dbf027cf6e58933af9dc6117.html

hellxoul 2012-03-08 08:32 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 久久精品国产亚洲av品善| 日韩免费无码一区二区视频| 三级网站在线免费观看| 一本一道dvd在线观看免费视频| 亚洲国产成人精品无码区二本 | 中文字幕在线免费观看| 亚洲精品第一国产综合境外资源| 狠狠综合久久综合88亚洲| 免费中文字幕不卡视频| 国产成人免费网站在线观看| 国产免费怕怕免费视频观看| 国产美女精品久久久久久久免费 | 学生妹亚洲一区二区| 亚洲人成网男女大片在线播放 | 亚洲真人日本在线| 国产亚洲成归v人片在线观看| 国产AV无码专区亚洲AV漫画| 亚洲AV永久无码区成人网站| 亚洲av中文无码乱人伦在线咪咕| 亚洲va无码手机在线电影| 亚洲综合激情六月婷婷在线观看| 亚洲免费人成视频观看| 在线观看亚洲AV每日更新无码| 亚洲乱码日产精品一二三| 美女被爆羞羞网站免费| 国产免费A∨在线播放| 免费成人在线电影| 又黄又爽又成人免费视频| 日本二区免费一片黄2019| 亚洲国产aⅴ综合网| 久久精品国产精品亚洲蜜月| 免费观看的a级毛片的网站| 亚洲一区二区三区91| 亚洲熟妇无码AV| 黄网站色成年片大免费高清 | 亚洲av永久无码精品秋霞电影影院 | 一级特级女人18毛片免费视频| 3344在线看片免费| 黄色片在线免费观看 | 99精品视频在线免费观看 | 无码国产精品一区二区免费vr|