在使用Jpa中使用了@ManyToOne和@OneToMany,在多条件查询中出现问题,处理成功作为一次记录。
问题描述:
user 使用 @OneToMany
order 使用 @ManyToOne
需求结果:order的分页数据查询条件搜索中带有user的属性,需要通过Jpa查询处理。
处理方法:
Specification<PlaceOrder> spec = new Specification<PlaceOrder>() {
@Override
public Predicate toPredicate(Root<Orders> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
List<Predicate> list = new ArrayList<>();
if (conditions.containsKey("username")) {
list.add(cb.like(root.get("user").get("username"), (String) conditions.get("username")));
}
query.orderBy(cb.desc(root.get("id")));
Predicate[] predicates = new Predicate[list.size()];
predicates = list.toA