TypedSort 'by' в Spring Data, как описано в справочных документах, не компилируется - PullRequest
0 голосов
/ 30 марта 2020

Я новичок с данными Spring и пытаюсь реализовать TypeSort 'by'. Справочные документы (https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories .paging-and-sorting ) показывают следующий пример:

TypedSort<Person> person = Sort.sort(Person.class);
TypedSort<Person> sort = person.by(Person::getFirstname).ascending()
  .and(person.by(Person::getLastname).descending());

Это не компилируется на моем компьютере (Несоответствие типов: невозможно преобразовать из Сортировать в Sort.TypedSort). Я использую OpenJDK версии 13. После некоторых попыток следующий код (немного упрощенный для тестирования) работает нормально:

TypedSort<Person> sorter = Sort.sort(Person.class);
Sort sorted = sorter.by(Person::getFirstName).descending();

Я что-то упустил в документации или это ошибка документации?

1 Ответ

0 голосов
/ 02 апреля 2020

Это ошибка в справочной документации или что-то, что они забыли реализовать.

Как только вы вызываете .ascending () или .descending (), это Sort и больше не TypedSort.

Я полагаю, что TypedSort был протестирован / реализован только для использования в качестве «свободного» API:

Sort sort = Sort.sort(Person.class)
  .by(Person::getAddress)
  .by(Address::getZipCode)
  .ascending()
  .and(...) 

Так что должно работать следующее, но это не похоже на документацию:

TypedSort<Person> person = Sort.sort(Person.class);
Sort sort = person.by(Person::getFirstname).ascending()
  .and(person.by(Person::getLastname).descending());
repository.findAll(sort)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...