Javaメソッドを使用してJPA結果をソートする可能性はありますか?カスタムメソッドSpringデータのソートJPA
" ORDER BY (acos(sin(latitude * $RADIAN) * sin(:latitude * $RADIAN)" +
" + cos(latitude * $RADIAN) * cos(:latitude * $RADIAN)" +
" * cos((:longitude * $RADIAN) - (longitude * $RADIAN))" +
" ) * $EARTH_RADIUS)")
fun findDoctorDepartmentsInRange(@Param("latitude") latitude: Double,
@Param("longitude") longitude: Double)
私はSpecificationと試みたが、EXPRESSIONにカスタムJavaメソッドを注入する方法を以下で使用しました::
+--------+----------+-----------+
| Name | Latitude | Longitude |
+--------+----------+-----------+
| A | x1 | y1 |
| B | x2 | y2 |
| C | x3 | y3 |
+--------+----------+-----------+
私が代わりにSQLを書くの意味:
私は、企業が持っている
query.orderBy(cb.asc(EXPRESSION))
EXPRESSION 'root.get(" yourFieldName ")'に挿入しようとしましたか? – mrkernelpanic
"a"、 "b"、 "x"とは何の定義もなく、誰もあなたに伝えることはできません。生成されたSQL(JPA Criteriaが生成するもの)でもJavaメソッドを使用することはできません。あなたが引用しているSQLは無効です... ASCは最後に来ます。 – DN1
更新:問題をより正確に記述しました。 –