我之前使用的是JPQL NamedQueries,以便从一个db-table A中获取一些值,并通过如下构造函数表达式将其放入PartsOfA中:SELECT new ... PartsOfA(a.member)from a a where ..
现在我尝试使用TypedQuery做同样的事情,它将使用CriteriaQuery创建。
有可能吗?如果是,怎么样?
答案 0 :(得分:1)
是的,你可以。
示例:
<强> TransferObject:强>
public class BasicTeacherInfo {
private String firstName;
private String lastName;
public BasicTeacherInfo(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
}
<强>查询强>
CriteriaQuery<BasicTeacherInfo> query = cb.createQuery(BasicTeacherInfo.class);
Root<Teacher> teacher = query.from(Teacher.class);
query.multiselect(teacher.get("firstName"),teacher.get("lastName"));
List<BasicTeacherInfo> results = em.createQuery(query).getResultList();
for (BasicTeacherInfo info : results) {
System.out.println("First name = " + info.getFirstName() + " "
+ "Last Name = " + info.getLastName());
}
来自http://www.thejavageek.com/2014/04/27/multiselect-criteria-api/ 的 示例
顺便说一下:你似乎误用了 TypedQuery 这个词。 Criteria Query不是TypedQuery。 TypedQuery<T>
是例如命名查询。