1


0

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およびString)に変換したくありません。 これに取り組むための最良の方法は何ですか? リストを反復処理し、返される前に手動で型変換を行う必要がありますか? または、ヘルパークラスを作成する必要があります。

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 Answer


2


明らかにJPA2を使用しているため、タイプセーフなメソッドを使用します。

public List getApplicants() {
    TypedQuery query = em.createQuery(
        "select a.id, a.name from Applicant a",
        Applicant.class
    );
    return query.getResultList();
}

次に、オブジェクトを使用します。

for(Applicant app: getApplicants()){
    selectionList.populate(app.getName(), app.getId());
}