gpt4 book ai didi

java - 使用 EntityListIterator 进行搜索需要一个适当的事务

转载 作者:行者123 更新时间:2023-11-30 11:43:20 25 4
gpt4 key购买 nike

我正在尝试通过 OfBiz 中的简单连接从数据库中获取一些数据。这是放置在 .java 方法中的代码,该方法从 controller.xml

调用
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 且没有适当事务的查找。将此调用包装在事务中。

在进一步调查中我发现了这一点:

默认情况下,service-multi 将围绕所有服务包装一个大事务,超时设置为服务的 _rowCount 事务超时。如果您不希望所有服务调用都包含在一个事务中,请在 invoke=""之后使用 global-transaction="false"参数。

所以我明白,如果我没有指定任何内容,我的服务应该有一个交易。我错过了什么?

最佳答案

您是否将此代码包装在服务中?确保你不是从 Controller 调用它

关于java - 使用 EntityListIterator 进行搜索需要一个适当的事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11339756/

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