質問

私は、出願人ではなく、大きなモデルを持っています

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

は、選択リストを移入するには、私が(ID、名前)タプルのリストを必要とし、私はこの検索クエリを使用します:

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

}
しかし、私は、Object []さんのリストを取得し、私は実際に対応するタイプ(ロングと文字列)へのビジネス層にこれらを変換する必要はありません。これにアプローチする最良の方法は何ですか?私は、リストを反復処理し、手動でそれを返す前に型変換を行うべきでしょうか?それとも私がヘルパークラスを作成する必要があります:

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");
や検索クエリを入力するためのより良い方法はありますか?

役に立ちましたか?

解決

あなたは明らかにJPA2を使用しているので、タイプセーフなメソッドを使用します:

public List<Applicant> getApplicants() {
    TypedQuery<Applicant> 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());
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top