SQL多表查询结果返回实体结果集

事先要用注解标注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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ithouse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值