Это еще один вопрос:
Как использовать API-интерфейс JPA в JOIN
CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder();
CriteriaQuery<Company> criteria = criteriaBuilder.createQuery( Company.class );
Root<Company> companyRoot = criteria.from( Company.class );
Join<Company,Product> products = companyRoot.join("dentist");
Join<Company, City> cityJoin = companyRoot.join("address.city");//Company->Address->City-city
criteria.where(criteriaBuilder.equal(products.get("category"), "dentist"), criteriaBuilder.equal(cityJoin.get("city"),"Leeds"));
У компании есть адрес, внутри которого есть City-pojo и Country-Pojo. Как я могу использовать его в JOIN
? Я попытался ссылаться на него с помощью address.city
, но я получил сообщение об ошибке:
Атрибут [address.city] из управляемого типа [EntityTypeImpl @1692700229: Компания [javaType: class com.test.domain.Компьютерный дескриптор: RelationalDescriptor (com.test.domain.Company → [DatabaseTable (COMPANY)]), сопоставлений: 16]] нет.