如何在 JPQL Hibernate 中使用 SUM(CASE WHEN....)?

How to use SUM(CASE WHEN....) in JPQL Hibernate?

我有以下查询:

Query qQuery = entityManager.createQuery("select " +
                "    sum((case when mt.prop1 = true then 1 else 0 end)), " +
                "    sum((case when mt.prop2 = true then 1 else 0 end)), " +
                "    sum((case when mt.prop3 = false then 1 else 0 end)), " +
                "    sum((case when mt.prop3 = true then 1 else 0 end)) " +
                "from MyTable mt " +
                "where mt.id = :myId ");

但是,当我将 case 语句放入聚合中时,这会在查询中引发语法错误。

我可以单独使用 SUM,单独使用 case 语句。我想知道 JPQL 是否可以支持聚合案例,或者我是否被迫使用本机查询。

呃……虚惊一场。 IntelliJ 是愚蠢的。我只是 运行 查询,没问题。 IntelliJ 仍然显示错误,但它有效。

对于遇到此问题的任何人....在您得出结论之前,请 运行 它,即使是 IntelliJ 或其他 IDE 的错误提示。有时 IDE 是错误的。