2011-12-26 37 views
2

我有這段代碼來獲取2日期之間的所有交易。我想得到一個desc排序列表。有什麼可能性?JPA findAll(spec,Sort)

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

回答

8
@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

的檔案庫有another method taking a Sort as additional argument。用適當的Sort實例調用此方法。

+0

我試過它不起作用,我可能會以錯誤的方式使用它。列表 list = new ArrayList (); \t \t list.add(「dateSubmit」); \t \t Sort sort = new Sort(Direction.DESC,list); – mettok 2011-12-26 17:17:02

+0

它生成什麼SQL查詢? – 2011-12-26 17:59:58