0

次のような等式でクエリの結果をソートしようとしています

   ORDER BY (x = y) ASC

しかし、予期しない token を取得し続けます=。私も次のようなことを試しました

   ORDER BY COUNT(x = y) ASC

しかし、どちらも成功しませんでした:expecting CLOSE, found '='

JPQLでこれを達成する方法はありますか? ありがとう

4

1 に答える 1

1

いいえ、JPQLではそのようには機能しません。それは不可能です。

  1. x=y注文できません
  2. x=ySELECT句の一部ではありません。

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で使用することです。

于 2012-08-26T19:48:12.653 に答える