3

インスタンス変数として配列を持つDTOオブジェクトを一度に設定する方法はありますか?これがDTOです

public class AbcDTO {

String label;
Float[] time;
String[] startTime;
//getters and setters 
 }

これは、このDTOを設定しようとしているBeanクラスです。

q = em.createNamedQuery("namedQuery");
        q.setParameter(1, anaId);
        List<Object> objects = new ArrayList();
        objects = q.getResultList();

これで、オブジェクトのリスト、objectsには、リストの各要素にデータベースのtimeとstartTimeの2つのフィールドがあるリストが含まれます。指定されたリストを使用してDTOオブジェクトを設定するにはどうすればよいですか。

4

1 に答える 1

3

現在の DTO では、結果リストを反復処理し、値と値を収集して、timeそれらstartTimeを DTO に割り当てる必要があります。JPA は、これを行うための直接的な方法を提供していません。

できることは、DTO を1 つのフィールドtimeと 1 つのstartTimeフィールドに変更することです。次に、コンストラクター式を使用して、結果リストを DTO のリストにマップできます。

List<AbcDTO2> dtos = em.createQuery("SELECT new com.example.AbcDTO2( o.time, o.startTime) FROM Entity o").getResultList();
于 2013-01-23T08:49:33.330 に答える