2012-07-05 56 views
2

交易我試圖從數據庫中獲取一些數據與在ofbiz簡單的加入。這裏是放置在的.java方法的代碼從controller.xml與EntityListIterator搜索需要的地方

DynamicViewEntity dve = new DynamicViewEntity(); 
dve.addMemberEntity("PR", "Product"); 
dve.addAliasAll("PR", "productName"); 
dve.addAliasAll("PR", "description"); 
dve.addRelation("one", "", "ProductAttribute", ModelKeyMap .makeKeyMapList("productId")); 
dve.addMemberEntity("PA", "ProductAttribute"); 
dve.addAlias("PA", "attrName"); 

// Selected Rows 
List selectedFields = UtilMisc.toList("productName", "description"); 

// Condition 
List conditionList = UtilMisc.toList(new EntityExpr("attrName", EntityOperator.LIKE, attr), new EntityExpr("productName", EntityOperator.LIKE, key)); 
EntityConditionList condition = new EntityConditionList(conditionList, EntityOperator.AND); 

EntityListIterator eli = delegator.findListIteratorByCondition(dve, condition, null, selectedFields, null, null); 
List result = eli.getPartialList(0, 10); 
eli.close(); 

調用時運行它,這是我收到的例外:

不能做到發現它返回一個沒有事務的EntityListIterator。將此調用包裝在一個事務中。

在進一步的調查,我發現這一點:

默認情況下,服務多將換一個大的交易身邊所有的服務,設置爲服務的_rowCount事務超時超時。 如果您不希望將所有服務調用包裝在一個事務中,請在invoke =「」後使用global-transaction =「false」參數。

所以我明白,如果我不指定任何東西應該有我的周圍包裹服務交易。我錯過了什麼?

回答

1

你包裹在服務代碼?確保你沒有從控制器調用它