Apache OFBiz委托者API是否支持通过限制或偏移从数据库中提取记录列表

时间:2011-03-23 19:21:00

标签: sql database api ofbiz

假设我们必须从表中获取5条记录,但我的where子句匹配数据库中的25k条记录。那么在ofbiz框架中有没有办法只选择5条记录而不是从数据库中获取一个列表然后从列表中只取5个?

如果无法限制(因为ofbiz API与数据库无关),我的其他选择是什么?

1 个答案:

答案 0 :(得分:3)

我建议你看一下这个entity engine cookbook

基本上,您可以从数据库中获取有限的行集:

// first get a list iterator
productsELI = delegator.findListIteratorByCondition("Product", 
  new EntityExpr("productId", EntityOperator.NOT_EQUAL, null), 
                  UtilMisc.toList("productId"), null);

// then get a partial list by count TO RETURN first 5 records
productsELI.getPartialList(0, 5);

// and finally just close the iterator
productsELI.close();

此外,如果您希望将直接SQL发送到您的数据库,那么就这样做:

// gets the helper (localmysql, localpostgres, etc.) for your entity group org.ofbiz
String helperName = delegator.getGroupHelperName("org.ofbiz");
SQLProcessor sqlproc = new SQLProcessor(helperName);
sqlproc.prepareStatement("SELECT * FROM PARTY LMIT 0, 5");
ResultSet rs1 = sqlproc.executeQuery();

// and then get your data from ResultSet like regular JDBC