AuctionService.java 文件源码

java
阅读 40 收藏 0 点赞 0 评论 0

项目:bnade-web-ssh 作者:
/**
 * 多条件查询拍卖数据
 * @param auction
 * @return
 */
public List<Auction> findAll(final Auction auction) {
    // 参数验证
    // 由于通过realmId分区表,为了避免所有分区搜索,参数必须有realmId
    if (null == auction.getRealmId()) {
        throw new IllegalArgumentException("服务器id不能为空");
    }
    // 由于还未对结果分页,不指定条件将有太多数据返回,暂时做限制处理,以后考虑分页
    if (null == auction.getItemId() && null == auction.getOwner()) {
        throw new IllegalArgumentException("物品id或卖家不能同时为空");
    }
    return auctionRepository.findAll((Root<Auction> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) -> {
        List<Predicate> list = new ArrayList<Predicate>();
        if (null != auction.getRealmId()) {
            list.add(criteriaBuilder.equal(root.get("realmId"), auction.getRealmId()));
        }
        if (null != auction.getItemId()) {
            list.add(criteriaBuilder.equal(root.get("itemId"), auction.getItemId()));
        }
        if (null != auction.getBonusList()) {
            list.add(criteriaBuilder.equal(root.get("bonusList"), auction.getBonusList()));
        }
        if (null != auction.getPetSpeciesId()) {
            list.add(criteriaBuilder.equal(root.get("petSpeciesId"), auction.getPetSpeciesId()));
        }
        if (null != auction.getPetBreedId()) {
            list.add(criteriaBuilder.equal(root.get("petBreedId"), auction.getPetBreedId()));
        }
        if (null != auction.getOwner()) {
            list.add(criteriaBuilder.equal(root.get("owner"), auction.getOwner()));
        }
        criteriaQuery.where(list.toArray(new Predicate[list.size()]));
        return null;
    });
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号