次のような等式でクエリの結果をソートしようとしています
ORDER BY (x = y) ASC
しかし、予期しない token を取得し続けます=
。私も次のようなことを試しました
ORDER BY COUNT(x = y) ASC
しかし、どちらも成功しませんでした:expecting CLOSE, found '='
JPQLでこれを達成する方法はありますか? ありがとう
次のような等式でクエリの結果をソートしようとしています
ORDER BY (x = y) ASC
しかし、予期しない token を取得し続けます=
。私も次のようなことを試しました
ORDER BY COUNT(x = y) ASC
しかし、どちらも成功しませんでした:expecting CLOSE, found '='
JPQLでこれを達成する方法はありますか? ありがとう
いいえ、JPQLではそのようには機能しません。それは不可能です。
x=y
注文できませんx=y
SELECT句の一部ではありません。JPA 2.0仕様では、これは次の言葉で伝えられます。
An orderby_item must be one of the following:
1. A state_field_path_expression that evaluates to an orderable state field
of an entity or embeddable class abstract schema type designated in the
SELECT clause by one of the following:
• a general_identification_variable
• a single_valued_object_path_expression
2. A state_field_path_expression that evaluates to the same state field of
the same entity or embeddable abstract schema type as a
state_field_path_expression in the SELECT clause
3. A result_variable that refers to an orderable item in the SELECT clause
for which the same result_variable has been specified. This may be the
result of an aggregate_expression, a scalar_expression, or a
state_field_path_expression in the SELECT clause.
試すことができるのは、SELECT句でCASEを使用して数値属性を作成し、それをORDERBYで使用することです。