Duvida em JPA(trasformar inteiro para string)

3 respostas
E

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

3 Respostas

jimmyhc

cara… new String() não rola ?

quikkoo

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+

E

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

Criado 31 de agosto de 2010
Ultima resposta 6 de set. de 2010
Respostas 3
Participantes 3