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();
。。。。
}
}

你可能感兴趣的:(bean,jpa)