如何在JPA Hibernate中执行pivot查询?

如何在JPA Hibernate中执行pivot查询?,hibernate,jpa,pivot-table,Hibernate,Jpa,Pivot Table,在MYSQL中,我有一个查询: 我的桌子 planning ------------------- process_id (int) project_id (int) period (datetime) total_hour (double) 我需要将这个子句SQL转换成JPQL,以便在JPA?SQL中使用 SELECT p.process_id, p.project_id, sum( case when p.period="2013-04-01 00:

在MYSQL中,我有一个查询:

我的桌子

planning ------------------- process_id (int) project_id (int) period (datetime) total_hour (double) 我需要将这个子句SQL转换成JPQL,以便在JPA?

SQL中使用

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 use dozer,也可以使用一些@SQLResultSet映射,请参见

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 use dozer,也可以使用@SqlResultSet映射。请参见如何将结果集添加到新对象示例:PlanningExtractBean.class,因为源bean与结果集不同。很高兴为您提供帮助,所以不要忘记将此答案标记为正确。ThanksHow将结果集添加到新对象示例:PlanningExtractBean.class,因为源Bean与结果集不同。很高兴为您提供帮助,所以不要忘记将此答案标记为正确。谢谢