Quello che vuoi fare è creare una query digitata. Con una corretta mappatura puoi anche ottenere oggetti correlati - non c'è bisogno di interrogare tabelle di join come ORM
lo farà per te:
Query query = session.createQuery(hql);
List<TestProject> results = query.list();
for (TestProject row : results) {
//what to do here
// do whatever you want
}
E con una corretta mappatura delle relazioni puoi ottenere relazioni come questa:
for (TestProject row : results) {
Set<TestEmployee> employees=row.getEmployeesList();
// do more work.
}
Per quanto riguarda i "come fare" - l'argomento è troppo ampio per trattarlo in un'unica risposta ecc. ma dovresti essere in grado di iniziare da qui - http://hibernate.org/orm/documentation/5.1/