HQL 'ParseName' gleichwertig
-
10-07-2019 - |
Frage
Ich habe entdeckt, ParseName Funktion als eine gute Wahl IP-Adresse in der Datenbank gespeichert ist, um zu bestellen. hier gibt es ein Beispiel.
Mein Problem ist, ich bin mit Hibernate mit benannten Abfragen in einer XML-Mapping-Datei und ich versuche, die Verwendung von
session.createSQLQuery(..)
Funktion.
Ich frage mich, ob jede ParseName äquivalente Funktion für HQL-Abfragen existiert. Ich bin für sie suchen und kann nichts finden.
Vielen Dank.
Lösung
Ich habe nichts im Zusammenhang finden.
Schließlich ich die folgende Klausel ORDER BY ausgeführt, um die IP-Adressen in numerischer Art und Weise, um zu bestellen (fand ich die Lösung hier ):
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)
Andere Tipps
Unterklasse Ihr Dialekt und benutzen RegisterFunction()
ParseName zur Verfügung HQL-Abfragen zu machen. RegisterFunction
ist nicht sehr gut dokumentiert, aber es gibt viele Beispiele im Web . Ich bin mir nicht sicher, dass Sie es zu verwenden können, Ergebnisse though.