@Entity
@NamedQuery(name="findSalaryForNameAndDepartment",
query="SELECT e.salary " +
"FROM Student e" +
"WHERE e.department.name = :deptName AND " +
" e.name = :empName")
Puoi anche inserire un join nella tabella del dipartimento e modificare un po' la query
Per la data utilizzare i parametri
em.createNamedQuery("xxx").setParameter("srtartDate", ...).setParameter("endDate",..)