实体订单包含字段:
@ManyToOne(optional = false)
private AbstractRequester requester;
我想通过键入此字段获取数据。
我在文档中创建了规范,但是在
上 page = orderRepository.findAll(spec, pageable);
获取例外
org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.QueryException: could not resolve property: class of: ...order.Order
我的规格:
@Override
public Predicate toPredicate(Root<Order> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
Predicate megaPredicate = cb.conjunction();`
...
megaPredicate = cb.and(megaPredicate, cb.and(
cb.equal(root.get("requester").type(), cb.literal(PersonRequester.class))
...
return megaPredicate;
}
答案 0 :(得分:0)
您正在尝试在查询中使用discriminator列,这是非法的。
相反,请直接在PersonRequester
上执行查询,并从megaPredicate
中移除违规条款。