我有这个复杂的Query,我想使用JPA Criteria Builder
构建查询select i.*
from items i
where category = ?
order by
(price >= ?) desc,
(case when price >= ? then price end) asc,
price desc limit 1;
我对Criteria Builder不熟悉,但具备基本知识。
提前致谢。
答案 0 :(得分:0)
不幸的是,JPA目前不支持ORDER BY子句中的case表达式。
如果您查看CriteriaQuery.orderBy的参数,则参数必须为Order
类型,而不是Expression
类型。
或者,您可以将其作为本机SQL查询执行,然后通过@SqlResultSetMapping
将结果映射到实体。