Сортировка по дате в Java SpringBoot

Вот моя служба API, мне нужно получить список вычислений с использованием api, но отсортировать его по убыванию даты, с текущей реализацией.

    /*
     * Get  Risk Evaluation based on id
     */
    public List<RiskEvaluation> getByTest(String test) {
        return riskEvaluationRepository.findByTest(test);
    }

Контроллер

@GetMapping("/{test}")
    @ApiOperation(value = "gets", notes = "Get all the Risk Assessments based on TEST.", response = RiskEvaluation.class, tags = {"GetsAllRisksforaTEST",})
    public List<RiskEvaluation> getByTest(@PathVariable("test") String test) {
        return scoringService.getByTest(test);
    }

текущий вывод, получаемый с помощью этого API,

{
        "accountID": null,
        "bap_id": "cccccccccc",
        "release_version": "1.9",
        "risk_level": "Medium",
        "risk_score": 2,
        "createdOn": 1533584332466,
        "updatedOn": 1533584332466,
        "id": "8340f05c-06c4-430a-bbbd-a53d0ce60dea"
    },
    {
        "accountID": null,
        "bap_id": "cccccccccc",
        "release_version": "1.9",
        "risk_level": "Medium",
        "risk_score": 2,
        "createdOn": 1533584551115,
        "updatedOn": 1533584551115,
        "id": "ae175b92-805d-46b5-8f67-95795e232057"
    },
    {
        "accountID": null,
        "bap_id": "cccccccccc",
        "release_version": "2.0",
        "risk_level": "Medium",
        "risk_score": 2,
        "createdOn": 1533584718584,
        "updatedOn": 1533584718584,
        "id": "d19177ef-b8c4-4951-bbdb-4e4d7274be81"
}

Как его отсортировать по значению createdOn

Если данные в настоящее время возрастают, означает ли это, что вы уже где-то указываете порядок? Если да, как насчет того, чтобы показать часть что? В любом случае, если он уже отсортирован по возрастанию, а вы хотите по убыванию, просто перевернуть список.

Andreas 06.08.2018 22:30
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
4 478
3

Ответы 3

Если вы используете JpaRepository, вы можете передать объект org.springframework.data.domain.Pageable со страницей, размером и желаемым порядком сортировки.

Например:

int page = 0, size = 10;

Pageable pageable = PageRequest.of(page, size, new Sort("createdOn", Sort.Direction.DESC));

...

Надеюсь, что это работает!

Помните: страница и размер дадут вам количество объекта в зависимости от того, что вы выберете.

Jose Anibal Rodriguez 06.08.2018 22:07

В scoringService есть ли у вас метод, вызывающий репозиторий RiskEvaluation, верно? Вероятно, для этого используется JpaRepository или CrudRepository, в любом случае, если у него есть findAll, вы можете использовать:

@Query("SELECT r FROM RiskEvaluation r ORDER BY createdOn ASC")
List<RiskEvaluation> findAll();

Или же

List<RiskEvaluation> findAllOrderByCreatedOnAsc();

Вы можете увидеть примеры в https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.query-methods.details.

interface PersonRepository extends Repository<User, Long> {

  List<Person> findByEmailAddressAndLastname(EmailAddress emailAddress, String lastname);

  // Enables the distinct flag for the query
  List<Person> findDistinctPeopleByLastnameOrFirstname(String lastname, String firstname);
  List<Person> findPeopleDistinctByLastnameOrFirstname(String lastname, String firstname);

  // Enabling ignoring case for an individual property
  List<Person> findByLastnameIgnoreCase(String lastname);
  // Enabling ignoring case for all suitable properties
  List<Person> findByLastnameAndFirstnameAllIgnoreCase(String lastname, String firstname);

  // Enabling static ORDER BY for a query
  List<Person> findByLastnameOrderByFirstnameAsc(String lastname);
  List<Person> findByLastnameOrderByFirstnameDesc(String lastname);
}

Если вы используете другой репозиторий / реализацию DAO, пожалуйста, вставьте свой код сюда, в сообщение, и дайте мне знать.

All Pereira 06.08.2018 22:16
Pageable pageable = PageRequest.of(0, 10, new Sort(Sort.Direction.DESC, "createdOn"));

Хотя эта команда может ответить на вопрос, предоставление дополнительного контекста относительно того, почему и / или как этот код отвечает на вопрос, улучшает его долгосрочную ценность. Как ответить

Popo 13.05.2019 20:39

Другие вопросы по теме