Ésta es la pregunta más a esto:Cómo utilizar JPA los criterios del API cuando se unen muchas mesas
How to use JPA Criteria API in 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"));
Una empresa tiene una dirección, dentro de la dirección no es la ciudad-POJO y Country- Pojo. ¿Cómo puedo usarlo en JOIN
? He intentado hacer referencia a ella con address.city
pero me dio el mensaje de error:
El atributo [address.city] del tipo administrado [EntityTypeImpl @ 1692700229: Company [javaType: Clase com.test.domain.Company descriptor: RelationalDescriptor (com.test.domain.Company -> [DatabaseTable (COMPANY)]), mappings: 16]] no está presente.