Pessoal , estou com uma duvida, neste codigo exemplo abaixo. minha duvida é o seguinte ,
Qual o comando ou aonde encaixaria, para eu pegar por exemplo o CAMPO : NAME na sintaxe Criteria,?
quero determinar alguns campos no distinct e me falaram que a metadologia CRITERIA DO JPA , faz isso
EntityManagerFactoryentityManagerFactory= Persistence.createEntityManagerFactory("demo");
EntityManagerentityManager= entityManagerFactory.createEntityManager();
// Welche Abteilungen sind am Projekt 'Design Release2' beteiligt?
System.out.println("--JPQL ------------------------------------------");
TypedQuery<Department> query1= entityManager.createQuery(
"select distinct d from Department d "+
" join d.employeese join e.projectsp "+
" where p.name = 'Design Release2'", Department.class);
List<Department> resultList1= query1.getResultList();
for(Department department: resultList1) {
System.err.println(department);
}
System.out.println("--Criteria --------------------------------------");
CriteriaBuilder criteriaBuilder= entityManagerFactory.getCriteriaBuilder();
CriteriaQuery<Department> query2= criteriaBuilder.createQuery(Department.class);
Root<Department> departmen1R= query2.from(Department.class);
Join<Object, Object> employee1J= departmen1R.join("employees");
Join<Object, Object> project1J= employee1J.join("projects");
Predicate name1P= criteriaBuilder.equal(project1J.get("name"), "Design Release2");
query2.select(departmen1R).where(name1P).distinct(true);
List<Department> resultList2= entityManager.createQuery(query2).getResultList();
for(Department department: resultList2) {
System.err.println(department);
}