JPA findAll (spec, Sort) - PullRequest
       6

JPA findAll (spec, Sort)

3 голосов
/ 26 декабря 2011

У меня есть этот код, чтобы получить все транзакции между 2 датами. Я хотел бы получить отсортированный список. Каковы возможности?

@Override
public List<Transaction> searchBySubmitDate(final Date startDate, 
                                            final Date endDate) {
    return transactionRepository.findAll(new Specification<Transaction>() {
        @Override
        public Predicate toPredicate(Root<Transaction> transaction, 
                                     CriteriaQuery<?> q, CriteriaBuilder cb) {
            Predicate between = cb.between(transaction.get(Transaction_.dateSubmit), startDate, endDate);

            return between;
        }
    });

Ответы [ 3 ]

8 голосов
/ 27 декабря 2011
@Override
    public List<Transaction> searchBySubmitDate(final Date startDate, 
                                                final Date endDate) {
        return transactionRepository.findAll(new Specification<Transaction>() {
            @Override
            public Predicate toPredicate(Root<Transaction> transaction, 
                                         CriteriaQuery<?> q, CriteriaBuilder cb) {
                Predicate between = cb.between(transaction.get(Transaction_.dateSubmit), startDate, endDate);

                return between;
            }
        },new Sort(Direction.DESC,"dateSubmit"));
0 голосов
/ 23 декабря 2018

Я думал, что оставлю более актуальный ответ, так как прошло 7 лет. Вот как мы это делаем сейчас:

interface TransactionRepository extends Repository<Transaction, Long> {
    @Query(value = "SELECT * FROM Transaction AS t " +
        "WHERE t.date >= :since AND t.date <= :until", nativeQuery = true)
    public List<Transaction> findTransactionBetween(@Param("since" String since, 
                                                    @Param("until" String until);
}

Подробнее читайте в документации Spring JPA

0 голосов
/ 26 декабря 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...