2010-11-18 2 views
1

Hibernate (prefferably Criteria API)를 사용하여 mySql 함수를 사용하여 Order By를 사용하는 것이 가능합니다.Hibernate - MySql 함수 삽입

내가 사용 찾고 있어요 기능은 다음과 같습니다 -은 {별명}

criteria.createCriteria("location.address"); 

에 뿌리를두고있다

SQRT(POW(69.1 * ({alias}.latitude - 51.3814282) , 2) + POW(69.1 * ( -2.3574537 - {alias}.longitude) * COS({alias}.latitude/57.3) , 2)) 

은 내가 찾고 있어요 모든 위의 지시 결과를 가지고 있습니다 지금까지는 투영 옵션이나 주문을 사용하는 방법을 찾지 못했습니다. 옵션과 아이디어가 부족합니다.

건배, R

답변

1

이 정확하게 귀하의 질문에 대답하지만 당신이 기준 API에서 얻을 것은 자신의 인터페이스를 준수 좋은 객체의 무리하지 않습니다. 쿼리에서 순서 지정을 해제하고 대신 메모리에서 정렬하도록 생각 했습니까? Comparator의 관점에서 그 순서화 함수를 표현하기 쉬워야하며, 그런 다음 Collection을 정렬 할 수 있습니다.

Criteria API의 .addOrder 함수에서 표현하는 방법을 모르겠습니다. 제한에 임의의 SQL을 추가 할 수 있지만 임의의 SQL로는 주문할 수없는 것처럼 보입니다.

행운을 빈다.

+0

건배 팀, 정확히 내가 뭘 찾고 있었는지는 모르지만 그 일을합니다. 데이터 세트가 커짐에 따라 약간의 성능 향상이 우려되지만, 현재로서는 메모리에서 정렬하는 것이 좋습니다. :) – Rob