【发布时间】:2017-08-24 11:32:47
【问题描述】:
我正在触发 HQL Join 查询
@Override
public List<Object> getCourseIdWithStatus(int courseId, String status) {
String queryString = "select sc.courseId, sc.name, sct.streamId from Course "
+ "sc join CoursesTypeInformation sct ON(sc.courseId = sct.courseId)"
+ " where sc.courseId = ?1 and sc.status = ?2 and sct.status = ?3";
Query query = entityManager.createQuery(queryString);
query.setParameter(1, courseId);
query.setParameter(2, status);
query.setParameter(3, status);
return (List<Object>)query.getResultList();
}
这是一个 HQL 查询而不是原生 SQL
现在我有一个 pojo 类
public class BasicData {
private int courseId;
private String name;
private int streamId;
.. setters and getters
}
我想将查询结果映射到 POJO。我应该使用什么?
【问题讨论】:
-
解决方案是为 Native SQL 而不是 HQL 定义的。
-
如果您使用 HQL,我认为您可以直接填充您的自定义对象。试试这个: (List
)query.getResultList(); -
试过了,不工作 java.lang.ClassCastException: [Ljava.lang.Object;无法转换为 com.domain.customDTO.BasicData
标签: java hibernate spring-boot