Символ метода не найден для Criteria.treat в hibernate javax персистентность - PullRequest
0 голосов
/ 17 октября 2019

В приведенном ниже коде

 CriteriaBuilder criteriaBuilder = getEntityManager().getCriteriaBuilder();
        CriteriaQuery<VendorEscalation> query = getCriteriaQuery();
        Root<VendorEscalation> root = query.from(VendorEscalation.class);
        Join<VendorEscalation, Vendor> vehicleJoin = root.join("vendor");
        query.where(criteriaBuilder.in(criteriaBuilder.treat(vehicleJoin, Vendor.class).get("id").in(vendorIds)));

Я использую здесь attributeBuilder, и при компиляции я получаю эту ошибку.

 error: cannot find symbol
        query.where(criteriaBuilder.in(criteriaBuilder.treat(vehicleJoin, Vendor.class).get("id").in(vendorIds)));
                                                      ^
  symbol:   method treat(Join<VendorEscalation,Vendor>,Class<Vendor>)
  location: variable criteriaBuilder of type CriteriaBuilder

Я проверил граф зависимостей gradle, который содержит зависимость от javax.persistence.Criteria через jar org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final. В intellij я даже могу открыть файл java из jar зависимостей и увидеть метод.

Что может быть возможной причиной и решением, чтобы это исправить. Я использую упаковщик Gradle с версией 2.14

...