0

在 MYSQL 我有这个查询:

我的桌子

    规划
    ------------------
    process_id (int)
    project_id (int)
    期间(日期时间)
    总小时(双)

    选择 process_id,project_id,
    sum( if (period="2013-04-01 00:00:00",total_hour,0)) 作为四月,
    sum( if (period="2013-05-01 00:00:00",total_hour,0)) 可能,
    sum( if (period="2013-06-01 00:00:00",total_hour,0)) 为 6 月
    从计划
    GROUP BY process_id,project_id;

我需要将此子句 SQL 转换为在 JPA 中使用吗?

4

1 回答 1

6

SQL 到 JPQL

SELECT p.process_id, p.project_id,
sum( case when p.period="2013-04-01 00:00:00" then p.total_hour else 0 end ) as april,
sum( case when p.period="2013-05-01 00:00:00" then p.total_hour else 0 end ) as may,
sum( case when p.period="2013-06-01 00:00:00" then p.total_hour else 0 end ) as june,
FROM Planning p
GROUP BY p.process_id, p.project_id;

但是您仍然可以使用本机查询。

映射结果集:您可以手动将结果集映射到新 bean(如果您愿意,可以使用推土机),或者您可以使用一些 @SqlResultSetMapping 请参阅如何使用 JPA 本机查询选择多个具有相同名称的列?

于 2013-04-02T14:16:05.090 回答