Corda 默认情况下,serviceHub.vaultQueryService.queryBy是否返回所有相关状态?

Corda 默认情况下,serviceHub.vaultQueryService.queryBy是否返回所有相关状态?,corda,Corda,当我尝试使用下面的代码通过linearId检索状态时,返回了两条记录,一条是已使用的记录,另一条是未使用的记录。最初的linearId是从web api传入的 val linearId: UniqueIdentifier = UniqueIdentifier(null, UUID.fromString(legalContractState.legalContract.linearId)) val linearIds = listOf(linearId) val linearStateCriter

当我尝试使用下面的代码通过linearId检索状态时,返回了两条记录,一条是已使用的记录,另一条是未使用的记录。最初的linearId是从web api传入的

val linearId: UniqueIdentifier = UniqueIdentifier(null, UUID.fromString(legalContractState.legalContract.linearId))
val linearIds = listOf(linearId)
val linearStateCriteria = QueryCriteria.LinearStateQueryCriteria(linearId = listOf(linearIds.first(), linearIds.last()))
val states = serviceHub.vaultQueryService.queryBy(LegalContractState::class.java, linearStateCriteria).states
val inputState: StateAndRef<LegalContractState> = serviceHub.vaultQueryService.queryBy(LegalContractState::class.java, linearStateCriteria).states.single()
val linearId:UniqueIdentifier=UniqueIdentifier(null,UUID.fromString(legalContractState.legalContract.linearId))
val linearIds=listOf(linearId)
val linearstatescriteria=QueryCriteria.LinearStateQueryCriteria(linearId=listOf(linearIds.first(),linearIds.last())
val states=serviceHub.vaultQueryService.queryBy(LegalContractState::class.java,linearStateCriteria)。状态
val inputState:StateAndRef=serviceHub.vaultQueryService.queryBy(LegalContractState::class.java,linearStateCriteria).states.single()
但从上的示例代码来看,它说这将返回一个基于linearId的未使用状态,我还检查了H2数据库VAULT_STATES表中的数据,有2条记录,一条记录有一个已使用的_时间戳,其状态为1,但另一条已使用的_时间戳为null,状态为0。这是一个非共享状态,这意味着只存储在我的数据库中,我对它执行了一次更新,所以理想情况下在db中有一个已消耗状态和一个新的输出状态。所以现在我不确定这里出了什么问题

查询给定线性ID的未使用线性状态:

val linearIds = issuedStates.states.map { it.state.data.linearId }.toList()
val criteria = LinearStateQueryCriteria(linearId = listOf(linearIds.first(), linearIds.last()))
val results = vaultQuerySvc.queryBy<LinearState>(criteria)
val linearIds=issuedStates.states.map{it.state.data.linearId}.toList()
val条件=LinearStateQueryCriteria(linearId=listOf(linearIds.first(),linearIds.last())
val结果=vaultQuerySvc.queryBy(标准)

这是一个将在M14版中修复的错误。看