JPA实现条件查询

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;

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值