Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does Apache OFBiz delegator API support fetching list of records from database by limit or offset

Let's say we have to fetch only 5 records from a table but my where clause is matching 25k records in the database. So is there a way in ofbiz framework to just select 5 records rather than getting a list from the database and then taking just 5 from the list?

If the limit is not possible (since ofbiz API is database agnostic) what are my other alternatives?

like image 778
anubhava Avatar asked Oct 14 '25 13:10

anubhava


1 Answers

I would suggest you take a look into this entity engine cookbook

Essentially for getting limited set of rows from database you would do:

// 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();

Also if you prefer to send direct SQL to your database then just do like this:

// 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
like image 58
anubhava Avatar answered Oct 17 '25 06:10

anubhava



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!