Я использую vaultQueryBy
, который запрашивает все Unconsumed state
и сортирует с некоторым полем этого состояния, но это не работает (результат - полностью случайная сортировка).
Затем я использую тот же vaultQueryBy
, но добавляю какое-то равное условие, тогда результат идеально сортируется.
Я пробовал также с другим полем (типа String и long), но оно также не работает, если не используется с другим условием поля.
Вот код
QueryCriteria queryCriteria = new QueryCriteria.VaultQueryCriteria(Vault.StateStatus.UNCONSUMED);
Sort.SortColumn sortCol = new Sort.SortColumn(new SortAttribute.Custom(CustomerSchema.CustomerEntity.class, "changeDate"), Sort.Direction.DESC);
List list = new ArrayList();
list.add(sortCol);
List<StateAndRef<CustomerState>> list = rpcOps().vaultQueryBy(queryCriteria, pageSpecification, new Sort(sortList), CustomerState.class).getStates();
И это не работает, тогда я добавляю это условие перед vaultQueryBy
QueryCriteria baseCriteria = new QueryCriteria.VaultCustomQueryCriteria(Builder.notNull(getField("linearId", CustomerSchemaV01.CustomerEntity.class)));
queryCriteria = queryCriteria.and(baseCriteria);
И это работает нормально, получи результат с правильной сортировкой.
Я не совсем уверен, что это намерение Корды или просто какая-то ошибка, но я думаю, что он должен быть в состоянии сделать заказ без использования какого-либо условия поля.