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);