事先要用注解标注DashboardData.class为Entity,并重启编译器。
@Override
public List<DashboardData> getDashboardData() throws Exception{
Session session = sessionFactory.getCurrentSession();
if (session == null) {
session = sessionFactory.openSession();
}
String sql = "SELECT DISTINCT
ROW_NUMBER() OVER (PARTITION BY 1 order by taskname) AS RowNumber,
T.ProjectID, T.ProjectName, T.BuildID, T.BuildName, T.TaskID, T.TaskName, T.Output, T.TaskCategoryID
FROM
(SELECT ROW_NUMBER() OVER (PARTITION BY BuildName,TaskName ORDER BY BuildNumber DESC) AS ROWID,
P.ProjectID,
P.ProjectName,
B.BuildID,
B.BuildName,
T.TaskID,
T.TaskName,
OP.Output,
TC.TaskCategoryID
FROM Project P
INNER JOIN ProjectBuildMapping PBM ON P.ProjectID=PBM.ProjectID
INNER JOIN Build B ON PBM.BuildID=B.BuildID
INNER JOIN Output OP ON B.BuildID=OP.BuildID
INNER JOIN Task T ON OP.TaskID=T.TaskID
INNER JOIN TaskDimensionMapping TDM ON T.TaskID=TDM.TaskID
INNER JOIN TaskCategory TC ON TC.TaskCategoryID=TDM.TaskCategoryID
WHERE TC.TaskCategoryID=1 OR TC.TaskCategoryID=6) AS T
WHERE T.ROWID=1
ORDER BY taskname";
<span style="white-space:pre"> </span>List<DashboardData> dashboardDatas = session.createSQLQuery(sql).addEntity(DashboardData.class).list();
<span style="white-space:pre"> </span>return dashboardDatas;
}