Неиспользованные и потребленные состояния могут быть отсортированы в возрастающем / убывающем алфавитном порядке, используя следующий код -
Vault.StateStatus status = Vault.StateStatus.CONSUMED;
@SuppressWarnings("unchecked")
Set<Class<LinearState>> contractStateTypes = new HashSet(singletonList(LinearState.class));
QueryCriteria vaultCriteria = new VaultQueryCriteria(status, contractStateTypes);
List<UniqueIdentifier> linearIds = singletonList(ids.getSecond());
QueryCriteria linearCriteriaAll = new LinearStateQueryCriteria(null, linearIds, Vault.StateStatus.UNCONSUMED, null);
QueryCriteria dealCriteriaAll = new LinearStateQueryCriteria(null, null, dealIds);
QueryCriteria compositeCriteria1 = dealCriteriaAll.or(linearCriteriaAll);
QueryCriteria compositeCriteria2 = compositeCriteria1.and(vaultCriteria);
PageSpecification pageSpec = new PageSpecification(DEFAULT_PAGE_NUM, MAX_PAGE_SIZE);
Sort.SortColumn sortByUid = new Sort.SortColumn(new SortAttribute.Standard(Sort.LinearStateAttribute.UUID), Sort.Direction.DESC);
Sort sorting = new Sort(ImmutableSet.of(sortByUid));
Vault.Page<LinearState> results = vaultService.queryBy(LinearState.class, compositeCriteria2, pageSpec, sorting);
ИЛИ
val sortAttribute = SortAttribute.Custom(CustomerSchema.CustomerEntity.class,
"changeDate")
val sorter = Sort(setOf(Sort.SortColumn(sortAttribute, Sort.Direction.DESC)))
val constraintResults = vaultService.queryBy<LinearState>(constraintTypeCriteria, sorter)
Ниже приведены URL-адреса для справки:
URL1: https://docs.corda.net/api-vault-query.html
URL2: https://github.com/corda/corda/issues/5060
URL3: https://github.com/manosbatsis/vaultaire
URL4: https://r3 -cev.atlassian.net/ просмотр / CORDA-2247