JPQL Select
La clausula SELECT
define el formato de los resultados del query.
Retorna una lista de Question:
select q from Question q
Retorna una lista de String:
select q.text from Question q
Retorna una lista de Object: Object[0] is String, Object[1] is Question:
select q.text, q from Question q
Retorna una lista de Option List<Option>
:
select q.options from Question q
Retorna una lista de QuestionResult, se construye el objeto en base a los resultados:
select new QuestionResult(q.text, q.alias) from Question q
El segundo argumento de createQuery indica qué tipo (T) es la lista resultante, en caso de ser un resultado único es el tipo del resultado:
Question q = JPA.em().createQuery("select q from Question q", Question.class).getSingleResult();