gpt4 book ai didi

java - Oracle ADF : Lifecycle method calls taking long time when ViewCriteria execute "in memory" mode

转载 作者:行者123 更新时间:2023-11-30 07:09:52 24 4
gpt4 key购买 nike

我在 ViewObject“myVO”上创建了一个 ViewCriteria“findByID1”。该 View 条件的执行模式已设置为“在内存中”。每当我以编程方式应用 View 条件并执行对 ViewObject 的所有方法(hasNext、getRowCount、next 等)的调用时,它总是花费很长时间。我已经检查了多次并确认使用 where 子句的实际查询并没有花费很长时间来获取结果。有时,ViewObject 不返回任何记录,但方法调用仍然需要很长时间,这进一步表明了这一点。任何人都可以建议这种行为的可能原因是什么。

代码片段如下:

ViewCriteria vcInMemory =
this.getVO1().getViewCriteria("inMemoryViewCrit");
this.getVO1().applyViewCriteria(vcInMemory );
this.getVO1().setNamedWhereClauseParam("pTimeDefinitionId",
this.getParentVO().getCurrentRow().getAttribute("TimeDefinitionId"));
this.getVO1().executeQuery();
// this.getVO1().getRowCount(); // tried executing this lifecycle method. This is also taking very long time(~180 seconds). Even if in a lot of cases, it doesnt return any records (i.e 0 for this method)
if (this.getVO1().hasNext()) { // method call taking long time : ~ 180 seconds.

while (this.getTimePeriod3().hasNext()) {
this.getTimePeriod3().next();
this.getTimePeriod3().removeCurrentRow();
}

最佳答案

默认情况下, View 对象对数据库执行查询,以检索结果行集中的行。在执行executeQuery()之前,您需要通过调用setQueryMode() API来更改QueryMode;

getVO1().setQueryMode( ViewObject.QUERY_MODE_SCAN_VIEW_ROWS | 
ViewObject.QUERY_MODE_SCAN_ENTITY_ROWS);

欲了解更多详情,请查看 documentation

关于java - Oracle ADF : Lifecycle method calls taking long time when ViewCriteria execute "in memory" mode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39407323/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com