| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2011 10:00:55
|
thiagocg
Virtual Machine Man
![[Avatar]](/images/avatar/e22c686bc771d5872150738b15f3e533.jpg)
Membro desde: 08/04/2006 11:07:07
Mensagens: 541
Localização: Campo Grande - MS
Offline
|
Olá pessoal, estou com problemas em uma consulta onde o usuario informa uma string qualquer e a consulta deve verificar a presença dessa string dentro de uma propriedade de um enum.
um trecho da minha classe enum:
minha consulta:
Na consulta acima caso o usuário informe email deveria retornar as enumerações exibidas como exemplo no inicio do post, mas é disparado o seguinte erro após o criteria.list():
Qualquer ajuda é bem vinda!
[]'s
This message was edited 1 time. Last update was at 17/03/2011 10:55:10
|
________________________________
Thiago Araujo da Silva
Analista de Sistemas
Tecnólogo em Processamento de Dados (Estácio - CG/MS)
Especialista em Desenvolvimento de Aplicações em Java (Uniderp - CG/MS)
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2011 10:10:26
|
Mathias85
Entusiasta Java
Membro desde: 25/03/2008 10:35:58
Mensagens: 15
Localização: Rio de Janeiro
Offline
|
Thiago...
normalmente o é o código do ENUM que é salvo no banco de dados, a menos que você especifique o contrário, que no caso é salvar outra propriedade do ENUM.
Você tem que ver o que ta salvando no banco de dados, se é o código do ENUM ou a string de descrição, ou algo do tipo.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2011 10:16:42
|
thiagocg
Virtual Machine Man
![[Avatar]](/images/avatar/e22c686bc771d5872150738b15f3e533.jpg)
Membro desde: 08/04/2006 11:07:07
Mensagens: 541
Localização: Campo Grande - MS
Offline
|
Olá Mathias, obrigado pela respota, o enum é composto por um identificador (inteiro) , nome(uma constante), e descricao(uma string). Neste caso o que é guardado no bd é o identificador ou seja um inteiro, pelo que percebi mesmo criando ou não alias para a propriedade ele tenta fazer um join e não consegue.
O que eu queria é algo como pegar um getDescricao e usar o ilike nele... Vou continuar pesquisando!
Grato!
[]'s
This message was edited 3 times. Last update was at 17/03/2011 10:19:34
|
________________________________
Thiago Araujo da Silva
Analista de Sistemas
Tecnólogo em Processamento de Dados (Estácio - CG/MS)
Especialista em Desenvolvimento de Aplicações em Java (Uniderp - CG/MS)
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2011 10:25:19
|
Mathias85
Entusiasta Java
Membro desde: 25/03/2008 10:35:58
Mensagens: 15
Localização: Rio de Janeiro
Offline
|
Thiago, tem como você substituir o comportamento padrão de salvar o ordinal do enum no banco, basta adicionar
no mapeamento da propriedade do tipo enum que será persistida. Nesse caso ele passará a salvar a representação String do enum.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2011 10:35:58
|
thiagocg
Virtual Machine Man
![[Avatar]](/images/avatar/e22c686bc771d5872150738b15f3e533.jpg)
Membro desde: 08/04/2006 11:07:07
Mensagens: 541
Localização: Campo Grande - MS
Offline
|
Legal essa possibilidade, mas o problema é que trabalho com base legada e não posso fazer alterações no esquema do bd.
Sera que não existe uma outra possibilidade sem alterar o esquema do bd?
Mas como o enum ñ possui muitas posições resolvi temporariamente de uma maneira ñ muito elegante (contains em cada posição da lista devolvida apos aplicar os outros filtros).
[]'s
|
________________________________
Thiago Araujo da Silva
Analista de Sistemas
Tecnólogo em Processamento de Dados (Estácio - CG/MS)
Especialista em Desenvolvimento de Aplicações em Java (Uniderp - CG/MS)
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2011 10:49:34
|
Mathias85
Entusiasta Java
Membro desde: 25/03/2008 10:35:58
Mensagens: 15
Localização: Rio de Janeiro
Offline
|
Outra possibilidade é criar uma lista com os enums que se encaixam nesse filtro, e na busca no bd você usa
isso faz com que o bd procure pelos códigos da lista de enums que você pré-filtrou.
|
|
|
 |
|
|