2009-11-30 4 views
0

데이터베이스에 저장된 IP 주소를 정렬하려면 PARSENAME 기능을 사용하는 것이 좋습니다. Here 예가 있습니다.
내 문제는 내가 XML 매핑 파일에 명명 된 질의와 최대 절전 모드를 사용하고 있는데 내가HQL 'parsename'이에 해당

session.createSQLQuery(..) 

기능의 사용을 방지하기 위해 노력하고있다.
HQL 쿼리에 대해 PARSENAME에 상응하는 함수가 있는지 궁금합니다. 나는 그것을 찾고있어 아무것도 찾을 수 없습니다.
많은 감사.

답변

1

관련 항목을 찾지 못했습니다.

order by cast(substring(host.ip, 1, locate('.', host.ip) - 1) as integer), 
       cast(substring(host.ip, locate('.', host.ip) + 1, locate('.', host.ip, locate('.', host.ip) + 1) - locate('.', host.ip) - 1) as integer), 
       cast(substring(host.ip, locate('.', host.ip, locate('.', host.ip) + 1) + 1, locate('.', host.ip, locate('.', host.ip, locate('.', host.ip) + 1) + 1) - locate('.', host.ip, locate('.', host.ip) + 1) - 1) as integer), 
       cast(substring(host.ip, locate('.', host.ip, locate('.', host.ip, locate('.', host.ip) + 1) + 1) + 1, 3) as integer)  
0

서브 클래스 당신의 방언과 HQL 쿼리에 대한 PARSENAME 사용할 수 있도록 RegisterFunction()를 사용
마지막으로 나는 (내가 here 해결책을 찾을 수 없음) 숫자 방법으로 IP 주소를 주문 BY 절 다음과 같은 순서를 실행. RegisterFunction은 잘 설명되어 있지 않지만 plenty of examples on the web이 있습니다. 그래도 주문 결과에 사용할 수 있는지 모르겠습니다.