Hibernate JPQL ORDER BY from计算字段/表达式
这基本上是一个后续问题 以下是JPQL查询:Hibernate JPQL ORDER BY from计算字段/表达式,hibernate,jpa,sql-order-by,expression,jpql,Hibernate,Jpa,Sql Order By,Expression,Jpql,这基本上是一个后续问题 以下是JPQL查询: SELECT NEW com.domain.project.view.StandingsStatLine( ro.id , cl.name , te.ordinalNbr + 1 , pa.wasWithdrawn , SUM(CASE WHEN paf.wasWithdrawn = FALSE AND paa.wasWithdrawn = FALSE AND scf.finalScore IS NOT
SELECT NEW com.domain.project.view.StandingsStatLine(
ro.id
, cl.name
, te.ordinalNbr + 1
, pa.wasWithdrawn
, SUM(CASE WHEN paf.wasWithdrawn = FALSE AND paa.wasWithdrawn = FALSE AND scf.finalScore IS NOT NULL THEN 1 ELSE 0 END) // g = games
, SUM(CASE WHEN paf.wasWithdrawn = FALSE AND paa.wasWithdrawn = FALSE AND scf.finalScore > sca.finalScore THEN 1 ELSE 0 END) // w = wins
, SUM(CASE WHEN paf.wasWithdrawn = FALSE AND paa.wasWithdrawn = FALSE AND scf.finalScore < sca.finalScore THEN 1 ELSE 0 END) // l = losses
, ...
, <very complex multi-line expression> // nrp = normalized ranking points
)
FROM Club cl
JOIN cl.teams te
JOIN te.rosters ro
JOIN ro.season se
JOIN ro.participations pa
JOIN pa.group gr
JOIN gr.round rd
JOIN rd.subCompetition sc
JOIN sc.competition cn
JOIN gr.games ga
JOIN ga.scores scf
JOIN ga.scores sca
JOIN scf.roster rof
JOIN sca.roster roa
JOIN rof.participations paf
JOIN roa.participations paa
WHERE ...
GROUP BY ...
ORDER BY pa.wasWithdrawn, nrp DESC, w DESC, g DESC, cl.shorthand
选择新建com.domain.project.view.standingstatline(
副检察官
,cl.name
,te.ordinalNbr+1
,宾夕法尼亚州
,SUM(当paf.wasdracted=FALSE和paa.wasdracted=FALSE且scf.finalScore不为NULL时,则为1,否则为0结束)//g=games
,SUM(当paf.wasdracted=FALSE,paa.wasdracted=FALSE,scf.finalScore>sca.finalScore,然后为1,否则为0结束时的情况)//w=wins
,SUM(当paf.wasdracted=FALSE,paa.wasdracted=FALSE,scf.finalScore
这与上一个问题中的陈述相同,没有。。。作为…
表达式
对于感兴趣的人:
中过滤,其中)
。。。由于SELECT中的…
似乎是无效的JPQL(Hibernate可以处理它们),您通常如何解决这个问题?找到了它。另见。请注意,这里是倒数第二个示例
select_item ::= select_expression [[AS] result_variable]
在选择中允许作为选项
SELECT AVG(e.salary) AS s,
e.address.city
FROM Employee e
GROUP BY e.address.city
ORDER BY s
我不知道构造器表达式是否也支持这一点,但我认为没有理由不这样做