nUma query dinâmica é criada durante a execução e por isso será um pouco mais custosa porque o JPA provider não poderá fazer nenhum tipo de otimização a priori.
nEntityManagerFactory emf = Persistence.createEntityManagerFactory("Tutorial");
nEntityManager em =
emf.createEntityManager();
n........
n@SuppressWarnings("unchecked")
npublic
Collection<Employee> findAllEmployees() {
n Query
query = em.createQuery(“select e FROM Employee e");
n return query.getResultList(); }
n........
n// find all employees
nCollection<Employee> listEmps =
service.findAllEmployees();
nfor( Employee e : listEmps )
n
System.out.println("Found employee: " + e);
nObserve que a query JPQL não se refere a uma
tabela EMPLOYEE do BD e sim a entidade Employee. Portanto esta é uma query selecionando todos os
objetos Employee sem
nenhuma filtragem !