30秒到達戰(zhàn)場
2023-02-17 21:17:04
cb是重寫了方法中的參數(shù)CriteriaBuilder,root是參數(shù)Rootpredicates.add(cb.between(root.<Date>get("createTime"),time1,time2));方法代碼:public Page<UserPointsOrder> pageList(final GridReq req) {Page<UserPointsOrder> page = userPointsOrderDao.findAll(new Specification<UserPointsOrder>() {@Overridepublic Predicate toPredicate(Root<UserPointsOrder> root, CriteriaQuery<?> query, CriteriaBuilder cb) {List<Predicate> predicates = new ArrayList<>();query.orderBy(cb.desc(root.<Long> get("guid")));long userId = StringUtils.isEmpty(req.getKeys()) ? 0 : NumberUtils.toLong(req.getKeys().trim());if (userId > 0)predicates.add(cb.equal(root.<Long> get("userId"), userId));if ((req.getOther() != null && req.getOther().has("startTime"))&&(req.getOther() != null && req.getOther().has("endTime"))) {String startTime = req.getOther().get("startTime").toString();Date time1 = TimeUtil.parseDate(startTime,"yyyy-MM-dd HH:mm:ss");String endTime = req.getOther().get("endTime").toString();Date time2 = TimeUtil.parseDate(endTime,"yyyy-MM-dd HH:mm:ss");predicates.add(cb.between(root.<Date>get("createTime"),time1,time2));}return cb.and(predicates.toArray(new Predicate[predicates.size()]));}}, new PageRequest(req.getPage() - 1, req.getRows()));return page;}
2 回答

largeQ
TA貢獻2039條經驗 獲得超8個贊
public interface JpaSpecificationExecutor<T> {
T findOne(Specification<T> var1);
List<T> findAll(Specification<T> var1);
Page<T> findAll(Specification<T> var1, Pageable var2);
List<T> findAll(Specification<T> var1, Sort var2);
long count(Specification<T> var1);
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優(yōu)點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特征。Java語言作為靜態(tài)面向對象編程語言的代表,極好地實現(xiàn)了面向對象理論,允許程序員以優(yōu)雅的思維方式進行復雜的編程。

慕田峪7331174
TA貢獻1828條經驗 獲得超13個贊
你這個findone(id)是用自己的@Query注解的jpql語句?如果不是,方法應該是findOne(Intergerid)才對,可但是你這個實體類哪里有id的字段;你也可以試試findBy字段這種方式另外注意下幾個Repository接口的細微區(qū)別,會不會問題出在接口選擇上面!
添加回答
舉報
0/150
提交
取消