Question

J'ai découvert la fonction PARSENAME comme un bon choix pour commander une adresse IP stockée dans la base de données. Ici , il y a un exemple.
Mon problème est que j'utilise Hibernate avec des requêtes nommées dans un fichier de mappage xml et j'essaie d'éviter l'utilisation de

session.createSQLQuery(..) 

fonction.
Je me demande s'il existe une fonction équivalente à PARSENAME pour les requêtes HQL. Je le cherche et ne trouve rien.
Merci beaucoup.

Était-ce utile?

La solution

Je n'ai rien trouvé de lié.
Enfin, j’ai exécuté la clause ORDER BY suivante pour ordonner les adresses IP de façon numérique (j’ai trouvé la solution ici ):

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)    

Autres conseils

Sous-classez votre dialecte et utilisez RegisterFunction () pour rendre PARSENAME disponible pour les requêtes HQL. RegisterFunction n'est pas très bien documenté, mais il existe de nombreux exemples sur le Web . Je ne suis pas sûr que vous puissiez l'utiliser pour commander les résultats.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top