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로 지정 자바 방법을 주입하는 방법을 아래에 사용했습니다 :
+--------+----------+-----------+
| 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
업데이트 : 문제를보다 정확하게 설명했습니다. –