具有聚合函数的Corda查询
我想计算可替换_令牌表中的行数。(Corda_OS 4.4 TokenSDK 1.2)具有聚合函数的Corda查询,corda,Corda,我想计算可替换_令牌表中的行数。(Corda_OS 4.4 TokenSDK 1.2) 这是我的密码 @StartableByRPC class Count : FlowLogic<String>() { override val progressTracker = ProgressTracker() @Suspendable @Throws(FlowException::class) override fun call():String{
这是我的密码
@StartableByRPC
class Count : FlowLogic<String>() {
override val progressTracker = ProgressTracker()
@Suspendable
@Throws(FlowException::class)
override fun call():String{
val generalCriteria = QueryCriteria.VaultQueryCriteria(status = Vault.StateStatus.ALL)
val count =PersistentFungibleToken::amount.count()
val countCriteria = QueryCriteria.VaultCustomQueryCriteria(count)
val criteria = generalCriteria.and(countCriteria)
val queryBy: Vault.Page<FungibleToken> = serviceHub.vaultService.queryBy(criteria, PageSpecification())
val resutCount = queryBy.otherResults[0] as Long
return "total : ${resutCount}"
}
}
Vault.StateStatus.ALL不起作用?我想你把它弄得有点复杂了。您试图实现的目标可以通过一个简单的查询完成:
QueryCriteria countCriteria = new QueryCriteria.VaultCustomQueryCriteria(
Builder.count(QueryCriteriaUtils.getField("amount", PersistentFungibleToken.class)),
Vault.StateStatus.ALL
);
Vault.Page<FungibleToken> fungibleTokenPage =
activeParty.vaultQueryByCriteria(countCriteria, FungibleToken.class);
QueryCriteria countCriteria=new QueryCriteria.VaultCustomQueryCriteria(
Builder.count(QueryCriteriaUtils.getField(“amount”,PersistentFungibleToken.class)),
Vault.StateStatus.ALL
);
Vault.Page可替换目录页=
activeParty.vaultQueryByCriteria(countCriteria,FungibleToken.class);
但是,上一个复合查询中的问题是,如果未指定,Vault CustomQueryCriteria将以未使用状态进行初始化
QueryCriteria countCriteria = new QueryCriteria.VaultCustomQueryCriteria(
Builder.count(QueryCriteriaUtils.getField("amount", PersistentFungibleToken.class)),
Vault.StateStatus.ALL
);
Vault.Page<FungibleToken> fungibleTokenPage =
activeParty.vaultQueryByCriteria(countCriteria, FungibleToken.class);