String jpqlQuery = "SELECT e FROM Employee e WHERE e.department = :department";
List<Employee> employees = em.createQuery(jpqlQuery)
.setParameter("department", "IT")
.getResultList();
public interface EmployeeRepository extends JpaRepository<Employee, Long> {
List<Employee> findByDepartment(String department);
}
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Employee> cq = cb.createQuery(Employee.class);
Root<Employee> root = cq.from(Employee.class);
Predicate predicate = cb.equal(root.get("department"), "IT");
if (someCondition) {
predicate = cb.and(predicate, cb.greaterThan(root.get("salary"), 5000));
}
cq.select(root).where(predicate);
List<Employee> employees = em.createQuery(cq).getResultList();