Порядок данных Spring правильно искать - PullRequest
0 голосов
/ 07 января 2019

В моем репозитории я создаю следующий метод:

List<customer> findTop5ByNameContains(String name);

воображая, что у меня есть эти клиенты:

[{name: 'spongebob', id: 1}, {name: 'Bob dylan', id: 2}]

, когда я ищу 'bob', результат получается: Спанч Боб, Боб Дилан. Как отсортировать сначала записи, начинающиеся с параметра, а затем записи, содержащие параметр?

Ответы [ 2 ]

0 голосов
/ 07 января 2019

Я бы порекомендовал вам использовать и "Exemple Matcher"

т.е:.

public List<Customer> search(Customer customer) {
  ExampleMatcher matcher = ExampleMatcher
            .matching()
            .withIgnoreCase()
            .withIgnoreNullValues()
            .withStringMatcher(ExampleMatcher.StringMatcher.CONTAINING)
            .withMatcher("name", startsWith())
            .withIgnorePaths("id");
  Example<Customer> query = Example.of(customer, matcher);

  return repository.findAll(query);
}
0 голосов
/ 07 января 2019

В соответствии с документами , вы должны использовать «Начиная с». Попробуйте это:

 List<customer> findTop5ByNameStartingWith(String name);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...