我有来自RPC客户端的功能,该功能可提取状态的已用历史记录。如果我通过自定义条件,则似乎会忽略Vault StateStatus的常规条件。
我的一般查询如下所示:
QueryCriteria generalCriteria = new QueryCriteria.VaultQueryCriteria(Vault.StateStatus.CONSUMED);
我的自定义条件如下:
customCriteria = generalCriteria;
if (requestJSON.containsKey("linearId")) {
String linearId = requestJSON.get("linearId").toString();
FieldInfo fieldInfo = getField("linearId", POSchemaV1.POSchemaPersistence.class);
criteriaExpression = Builder.equal(fieldInfo, linearId);
customCriteria = new QueryCriteria.VaultCustomQueryCriteria(criteriaExpression);
customCriteria = generalCriteria.and(customCriteria);
}
保管库查询如下所示:
Vault.Page<PurchaseOrder> orderPage = proxy.vaultQueryByCriteria(customCriteria, PurchaseOrder.class);
List<StateAndRef<PurchaseOrder>> orderStateAndRefList = orderPage.getStates();
如果我传递linearId,结果似乎具有未消耗状态,如果我忽略linearId,则可以正确获取所有消耗状态。请让我知道我是否想念一些东西。
有一种更简单的(现成的)方法来查询线性状态:
QueryCriteria queryCriteria = new QueryCriteria.LinearStateQueryCriteria()
.withStatus(Vault.StateStatus.CONSUMED)
.withUuid(Collections.singletonList(linearId));
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句