我们假设mySweetTable有2列X和Z。
如何使用jpql
或条件API
实现此目标?
SELECT *, (3 * X + Z) AS OrderCondition
FROM mySweetTable
WHERE U LIKE "as%" or V LIKE "as%"
ORDER BY OrderCondition DESC
答案 0 :(得分:0)
这个答案能否解决您的问题?将等式映射到MySweetTable实体上的属性,然后按该属性排序。
答案 1 :(得分:0)
根据JPA 2规范,由标量表达式生成的结果变量可以在ORDER BY中使用:
orderby_item必须是以下之一:
...
result_variable,它引用SELECT子句中的可订购项 已指定相同的result_variable。这可能是>的结果。 > SELECT子句中的aggregate_expression,scalar_expression或state_field_path_expression。
...
SELECT o.quantity,o.cost * 1.08 AS taxedCost,a.zipcode
来自客户c加入c.orders o加入c.address a
在哪里a.state ='CA'和a.county ='Santa Clara' ORDER BY o.quantity,taxedCost,a.zipcode
因此,以下情况应该适用于特定情况:
SELECT mye, (3 * mye.x + mye.y) AS ord
FROM MyEntity mye
WHERE mye.u LIKE 'as%' or mye.v LIKE 'as%'
ORDER BY ord DESC