Formatando fone com hibernate

1 resposta
L

Galera…o problema é o seguinte…

Tenho uma base de dados com uma tabela chamada clientes…
Nesta tabela, tem uma coluna chamada fone onde armazena os telefones dos clientes no seguinte formato "([telefone removido]’ com parenteses e traço… armazena no formato de string ou var char…como queiram…
O banco é o postgres…
Tenho um sistema onde o cliente quer fazer a pesquisa pelo fone para achar o cliente…mas ele quer digitar, o número do telefone sem () e nem - . tudo junto…
implementei uma query no hibernate assim…

<query name="listaClientePorFones">
        FROM Cliente as cli WHERE cli.fone1 LIKE :f1  AND cli.situacao='A' ORDER BY cli.nome
    </query>

o problema que deste jeito, se o usuario ditigar os números sem os () e - … a query não localiza
Diretamente no postgres daria para fazer algo parecido com isso para retirar os caracteres não numericos

select cdcliente,fone

from cliente

where REPLACE(REPLACE(REPLACE(fone,'-',''),')',''),'(','') LIKE  '%33244545%'

mas esta opção na query do hibernate não funciona…alguém já passou por isso?

1 Resposta

H

Acho que o ideal seria gravar o telefone no banco sem máscara.

Criado 18 de fevereiro de 2010
Ultima resposta 18 de fev. de 2010
Respostas 1
Participantes 2