Duvida em JPA(trasformar inteiro para string)

E ai pessoal…

estou precisando executar uma query usando like… mas como no banco(oracle) o campo é number … e na minha classe mapeada é long… quando executo a hql da erro

		Query query = em.createQuery("select o from Filial o where o.cdFilial like '%"+prefixo+"%'"); 

ja tentei usar o CAST … mas tbm não funcionou…

		Query query = em.createQuery("select o from Filial o where o.nmFantasia like CAST(o.cdFilial AS varchar(10)) like '%"+prefixo+"%'"); 

ja tentei de várias maneiras… mas nenhuma ele consegue executar o like para o inteiro…

não posso mudar a coluna do banco para string… tem que funcionar assim mesmo!!!

alguem tem uma luz ai???

to quase usando sql nativa… mas queria saber se jpa da suporte para cast …

vlwwwwwww

cara… new String() não rola ?

cara, pelo q sei o like só serve pra operar entre strings (varchar), com esse seu cast vc esta operando um number e um varchar

to pensando em duas poccíveis soluções, ou vc usa esse cast em “o.cdFilial” ao invés de usar em “prefixo”, ou então vc muda o cast para number e troca tb o like para o operador de igualdade

tenta isso, e diz noq dá
flw, t+

então… tentei mais algumas maneiras e não funcionou…
como tinha pouco tempo tive que fazer com sql nativa… ai funcionaou normalmente…

		String sql = "SELECT * FROM tb_filial WHERE NM_FANTASIA LIKE UPPER('%"+prefixo+"%') OR CAST(CD_FILIAL AS varchar(10)) LIKE '%"+prefixo+"%'";

se alguem souber a resolução usando jpa posta ai!!!

vlwwwwwwwwwwww