JPA中使用构造器查询查询多个对象
JPQL 支持将查询的属性结果直接作为一个 java class 的构造器参数,并产生实体作为结果返回 。例如上面的例子只获取 person entity bean的name and personid属性,我们不希望返回的集合的元素是object[],而希望用一个类来包装它。就要用到使用构造器 。 例: public class SimplePerson { ?private Integer personid; private String name ; ?? 。。。。 public SimplePerson() { } public SimplePerson(Integer personid, String name) { this . name = name; this . personid = personid; } } ?查询代码为:// 我们把需要的两个属性作为 SimplePerson 的构造器参数,并使用 new 函数。 Query query = em.createQuery(" select new com.foshanshop.ejb3.bean.SimplePerson(p. personid, p.name) from Person p order by p.personid desc "); // 集合中的元素是 SimplePerson 对象 List result = query.getResultList(); if (result!=null){ Iterator iterator = result.iterator(); while( iterator.hasNext() ){ SimplePerson simpleperson = (SimplePerson) iterator.next(); 。。。。 } }