设置具有Array作为实例变量的DTO对象

时间:2013-01-23 04:41:03

标签: java jpa ejb

是否有任何方法可以将DTO对象设置为一个Array作为实例变量? 这是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();

现在,对象列表,对象,将包含一个列表,其中列表的每个元素都有来自数据库的两个字段time和startTime。如何使用给定列表设置DTO对象。

1 个答案:

答案 0 :(得分:3)

使用当前的DTO,您必须遍历结果列表,收集timestartTime值并将它们分配给您的DTO。 JPA没有提供直接的方法。

您可以做的是将您的DTO更改为只有一个time和一个startTime字段。然后,您可以使用构造函数表达式将结果列表映射到DTO列表:

List<AbcDTO2> dtos = em.createQuery("SELECT new com.example.AbcDTO2( o.time, o.startTime) FROM Entity o").getResultList();