J'ai un demandeur de modèle assez grand:JPA typées Requêtes de recherche
public class Applicant{
private Long id
private String name;
...
...
}
Pour remplir une liste de sélection, je besoin d'une liste de (id, nom) tuples et j'utiliser cette requête de recherche:
public List getNames() {
Query query = em.createQuery("select a.id, a.name from Applicant a");
return query.getResultList();
}
Cependant, j'obtiens une liste d'Object [] et je ne veux pas vraiment les convertir dans la couche de gestion aux types correspondants (Long et String). Quelle est la meilleure façon d'aborder cela? Dois-je parcourir la liste et manuellement faire la conversion de type avant de le retourner? Ou devrais-je faire une classe d'aide:
public class ApplicantTuple{
public Long id
public String name;
public Application(Long id, String name) {
...
}
}
et une requête de recherche:
Query query = em.createQuery("select NEW my.model.ApplicantTuple(a.id, a.name) from Applicant a");
Ou est-il une meilleure façon de saisir des requêtes de recherche?
Qu'est-ce qui se passe avec les autres champs de l'objet demandeur? Ils ne sont pas récupérés? Et est-ce possible quand j'utilise join et demande des champs de deux tables/entités? –
Oui, les autres champs sont récupérés, sauf s'ils sont configurés paresseux. –
Cependant, cela rend le jeu de résultats inutilement volumineux, n'est-ce pas? –