Pergunta

Eu descobri função ParseName como uma boa escolha para o endereço IP a fim armazenados em banco de dados. Aqui há um exemplo.
Meu problema é que eu estou usando Hibernate com consultas nomeadas em um arquivo de mapeamento xml e eu estou tentando evitar o uso de

session.createSQLQuery(..) 

função.
Eu estou querendo saber se existe qualquer função equivalente ParseName para consultas HQL. Eu estou procurando por ele e não consigo encontrar nada.
Muito obrigado.

Foi útil?

Solução

Eu não encontrei nada relacionado.
Finalmente eu executada a seguinte cláusula ORDER BY para ordenar os endereços IP em forma numérica (Eu encontrei a solução aqui ):

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)    

Outras dicas

subclasse seu dialeto e uso RegisterFunction() fazer ParseName disponível para consultas HQL. RegisterFunction não está muito bem documentado, mas existem muitos exemplos na web . Eu não estou certo que você pode usá-lo para fim Resultados embora.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top