Hibernate 查询专题

1、 条件查询

List<Sort.Order> orders = new ArrayList<>();
orders.add(new Sort.Order(Sort.Direction.ASC, "addTime"));

Page page = pcModuleRepository.findAll((root, query, builder) -> {
        List<Predicate> predicates = new ArrayList<Predicate>();
        // 按父级分类搜索
        if (StringUtil.isNotBlank(inputDTO.getParentId())) {
            predicates.add(builder.equal(root.get("parentId"),         
            inputDTO.getParentId()));
        }
   return query.where(predicates.toArray(new Predicate[predicates.size()])).getRestriction();
}, PageRequest.of(1, 10,Sort.by(orders)));

2. @Query 原生查询

 

@Query(value = "SELECT agent_id as agentId,useable as useable FROM agent_account T WHERE ( add_time = (SELECT MAX (add_time) FROM agent_account WHERE agent_id IN(:ids) AND agent_id = T .agent_id))", nativeQuery = true)
    List<Map<String, Object>> findUseableByAgentIdIn(@Param(value = "ids") List<String> ids);
   

 

List<Map<String, Object>> list = agentAccountRepository.findUseableByAgentIdIn(ids);

List<AgentAccountOutputDTO> list2 = JSON.parseArray(JSON.toJSONString(list), AgentAccountOutputDTO.class);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值