【问题标题】:Can not create specification that will check class of field无法创建将检查字段类别的规范
【发布时间】:2013-03-23 06:34:31
【问题描述】:

实体订单包含字段:

@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;
}

【问题讨论】:

    标签: java spring jpa predicate


    【解决方案1】:

    您试图在查询中使用鉴别器列,这是非法的。

    相反,直接在PersonRequester 上执行查询并从megaPredicate 中删除违规子句。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-14
      • 1970-01-01
      • 2018-02-15
      • 2020-10-16
      相关资源
      最近更新 更多