* 淇濇寔瀹炰綋鍚嶇О灝戜簬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