3

2つの日付の間のすべてのトランザクションを取得するためのこのコードがあります。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);
}

詳細については、SpringJPAのドキュメントを参照してください。

于 2018-12-22T21:16:47.647 に答える