1.实现条件查询,在repository的类需要继承JpaSpecificationExecutor类
如
package testplatform.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
import testplatform.struct.po.CaseDetailPO;
import java.util.List;
@Repository
public interface CaseDetailRepository extends CrudRepository<CaseDetailPO, String>,JpaRepository<CaseDetailPO,String>, JpaSpecificationExecutor<CaseDetailPO> {
List<CaseDetailPO> findByGroupId(String groupId);
}
```javascript
在这里插入代码片
2.实现具体的方法
@Override
public PageResultIDO<CaseDetailPO> findAll(CaseQueryIDO caseQueryIDO) {
Specification<CaseDetailPO> specification = (Specification<CaseDetailPO>) (root, query, cb) -> {
List<Predicate> predicates = new ArrayList<Predicate>();
if (!StringUtils.isEmpty(caseQueryIDO.getLimit())) {
// predicates.add(cb.equal(root.get("get"), settlementRecordIDO.getEnterPriseId()));
}
query.orderBy(cb.desc(root.get("createdAt").as(LocalDateTime.class)));
return cb.and(predicates.toArray(new Predicate[predicates.size()]));
};
Page<CaseDetailPO> caseDetailPage = caseDetailRepository.findAll(specification, PageRequest.of(caseQueryIDO.getPage() - 1, caseQueryIDO.getLimit()));
PageResultIDO pageRequestIDO =new PageResultIDO<CaseDetailPO>();
pageRequestIDO.setCount((int) caseDetailRepository.count());
pageRequestIDO.setList(caseDetailPage.getContent());
return pageRequestIDO;
}