当前位置: 首页 > 面试题库 >

Apache OFBiz Delegator API是否支持按限制或偏移量从数据库中获取记录列表

端木令
2023-03-14
问题内容

假设我们只需要从一个表中获取5条记录,但是我的where子句与数据库中的25k条记录匹配。那么,ofbiz框架中是否有一种方法可以只选择5条记录,而不是从数据库中获取列表,然后仅从列表中获取5条记录?

如果不可能达到限制(因为ofbizAPI与数据库无关),我还有其他选择吗?


问题答案:

我建议您看看这个实体引擎食谱

本质上是为了从数据库中获取有限的行集,您可以这样做:

// 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


 类似资料:
  • 我有到UTC的秒偏移量,数据库中存储的所有时间戳都是UTC,如何在选择查询期间应用偏移量, 我想在UTC时间插入数据库并在本地时间检索。 在PHP上: 我可以在select的mysql运行时中减去unix\u timestamp字段$user\u timezone\u offset吗? 我正在插入UTC,这显然是我所需要的,但为了选择用户的本地时间,我需要以某种方式将偏移量应用于存储在数据库中的时

  • 我得到了这段代码,但我认为这是不好的方法,如果有像100K的结果,它会返回100K的新用户怎么办?对于,我是否可以使用其他方法,但我不太确定如何实现。另外,是否应该使用块?

  • 假设我有一个名为“批处理”的主题,有一个分区,我向它发布了数百万条记录以供处理。我有一个由3人组成的消费者小组来处理这些数以百万计的记录。我遇到了这样一种情况:我不再需要处理满足特定标准(如

  • 我正在调查一个问题,在这个问题上,我们看到了与jooq尝试填充生成的记录类相关的奇怪异常,因为它使用java.sql,所以会出现数据类型错误。结果集::getXXX(int)(基于列索引)以获取数据。 我可以共享的堆栈跟踪部分如下所示: 这肯定是使用错误的列索引导致的列不匹配。 出现这个问题是因为我们在不断发展的模式上使用记录,所以底层表包含记录定义中不可用的列。 请注意,触发此操作的实际代码是:

  • 我使用动物园管理员从Kafka获取数据。在这里,我总是从最后一个偏移点获取数据。有没有办法指定偏移时间来获取旧数据? 有一个选项“自动偏移”。重置。它接受最小的或最大的。有人能解释一下什么是最小的和最大的吗。可以自动偏移。重置有助于从旧偏移点而不是最新偏移点获取数据?

  • 我的数据库表如下所示 我想要得到所有的一周的时间,有多少任务是在星期一,星期二...星期五创建的。如有任何帮助,我们将不胜感激。