3

我有这个代码来获取两个日期之间的所有交易。我想得到一个 desc 排序列表。有哪些可能性?

@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;
        }
    });
4

3 回答 3

11
@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"));
于 2011-12-27T10:26:37.387 回答
0

存储库有另一种方法,将 Sort 作为附加参数。使用适当的 Sort 实例调用此方法。

于 2011-12-26T17:05:06.300 回答
-2

我想我会留下一个更新的答案,因为它已经 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 文档中阅读更多内容

于 2018-12-22T21:16:47.647 回答