Типизированные поисковые запросы JPA

У меня довольно большая модель. Заявитель:

public class Applicant{
 private Long id
 private String name;
 ...
 ...
}

Чтобы заполнить список выбора, мне нужен список кортежей (id, name), и я использую этот поисковый запрос:

public List getNames() {
    Query query = em.createQuery("select a.id, a.name from Applicant a");
    return query.getResultList();

}

Однако я получаю список Object [], и я действительно не хочу преобразовывать их на бизнес-уровне в соответствующие типы (Long и Строка). Как лучше всего подойти к этому? Следует ли перебирать список и вручную выполнять преобразование типов перед его возвратом? Или мне следует создать вспомогательный класс:

public class ApplicantTuple{
 public Long id
 public String name;

 public Application(Long id, String name) {
    ...
 }

}

, а затем ввести поисковый запрос:

Query query = em.createQuery("select NEW my.model.ApplicantTuple(a.id, a.name) from Applicant a");

Или есть лучший способ ввести поисковые запросы?

1
задан John Manak 26 October 2010 в 09:22
поделиться