Hibernate: Busca Avançada  XML
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Autor Mensagem
adrianostanley
JavaTeenager
[Avatar]

Membro desde: 28/06/2006 09:30:23
Mensagens: 191
Localização: Juiz de Fora/MG
Offline

Olá pessoal... há como realizar uma busca utilizando o Hibernate passando um objeto contendo apenas algumas informações armazenadas??

Por exemplo, se tenho uma classe Cliente e nela tenho:

- nome;
- idade;
- endereco;
- profissao;

Porém quero fazer um formulário onde o usuário digita apenas alguns dos dados e ele busca por todos os Clientes que têm os dados passados... por exemplo:

- nome = "João";
- idade = 21;
- endereco = null;
- profissao = null;

Daí ele retornaria todos os Clientes em um List, que têm o nome João e 21 anos de idade...

Enfim, isso é possível?

Abraços...

...
Adriano 'Stanley'
adrianostanley@gmail.com
[MSN]
Cabral
JavaTeenager
[Avatar]

Membro desde: 01/06/2005 09:10:59
Mensagens: 152
Localização: Arujá - SP
Offline

Ola arianostanley,


aqui temos uma superclasse que faz esse tipo de consulta, com o seguinte código:




e na subclasse só setamos os atributos que queremos que ele faça a consulta:




Espero que ajude.


Ricardo Cabral

** SCPN **
passos
JavaEvangelist
[Avatar]

Membro desde: 25/10/2002 10:19:27
Mensagens: 322
Localização: Rio de Janeiro
Offline

adrianostanley wrote:Daí ele retornaria todos os Clientes em um List, que têm o nome João e 21 anos de idade...


O Hibernate tem uma sacada muito legal que e o Example queries vc passa pra ele uma entidade e ele procura por todos os atributos nao nulos passados dentro da entidade. Ignorando versão, identificadores e associações.

A programação hoje é uma corrida entre os engenheiros de software que lutam para construir programas maiores e mais à prova de idiotas e o universo tentando produzir idiotas maiores e melhores. Até então, o universo está vencendo (Rick Cook)
[Email]
adrianostanley
JavaTeenager
[Avatar]

Membro desde: 28/06/2006 09:30:23
Mensagens: 191
Localização: Juiz de Fora/MG
Offline

E ae passos... era exatamente isso que eu queria... mas agora surgiu mais um empecilho...

Eu utilizo o SwingBean como framework pros formulários... e ele não seta os campos vazios como null, mas como ""... e o Hibernate acaba buscando no banco de dados por valores "" ao invés de ignorá-los...

Há como fazer pro Hibernate tratar os "" como null??

Abraços e obrigado...

...
Adriano 'Stanley'
adrianostanley@gmail.com
[MSN]
passos
JavaEvangelist
[Avatar]

Membro desde: 25/10/2002 10:19:27
Mensagens: 322
Localização: Rio de Janeiro
Offline

adrianostanley wrote:... Há como fazer pro Hibernate tratar os "" como null??


Não que eu saiba ou ja tenha utilizado. Ate onde eu sei so tem excludeZeroes() ou excludeProperty(name).

Bem que eles podiam implementar algo do tipo excludeValue("Um Valor Qualquer") ou excludeValues(Uma Collection ou algo assim)

Nada implede que vc implemente isso mas vai dar um trabalho!

A programação hoje é uma corrida entre os engenheiros de software que lutam para construir programas maiores e mais à prova de idiotas e o universo tentando produzir idiotas maiores e melhores. Até então, o universo está vencendo (Rick Cook)
[Email]
adrianostanley
JavaTeenager
[Avatar]

Membro desde: 28/06/2006 09:30:23
Mensagens: 191
Localização: Juiz de Fora/MG
Offline

Enquanto isso vai na gambiarra mesmo... antes de enviar eu testo cada campo... se tiver "" eu seto como null mesmo! uhauha

Mas se eu descobrir uma maneira posto aqui...

Vlw pessoal... abraços!

...
Adriano 'Stanley'
adrianostanley@gmail.com
[MSN]
passos
JavaEvangelist
[Avatar]

Membro desde: 25/10/2002 10:19:27
Mensagens: 322
Localização: Rio de Janeiro
Offline

Estava pensando aqui com meus botões. Se tem como excluir os zeros, tem que ter como excluir as strings em branco.

Cria uma classe utilizaria:


E no seu example set o PropertySelector


To pensando seriamente em pedir pra eles adicionarem isso na classe Example como uma propriedade excludeBlanks()



[update] Ja pedi so não sei se eles vão entender meu maldito ingles misturado com o portugues[/update]

A programação hoje é uma corrida entre os engenheiros de software que lutam para construir programas maiores e mais à prova de idiotas e o universo tentando produzir idiotas maiores e melhores. Até então, o universo está vencendo (Rick Cook)
[Email]
adrianostanley
JavaTeenager
[Avatar]

Membro desde: 28/06/2006 09:30:23
Mensagens: 191
Localização: Juiz de Fora/MG
Offline

Boa cara, vou enviar um e-mail pra eles também. Quanto mais pessoas pedirem melhor... abraços!

...
Adriano 'Stanley'
adrianostanley@gmail.com
[MSN]
passos
JavaEvangelist
[Avatar]

Membro desde: 25/10/2002 10:19:27
Mensagens: 322
Localização: Rio de Janeiro
Offline

Entre no Jira e vota

http://opensource.atlassian.com/projects/hibernate/browse/HHH-2561

A programação hoje é uma corrida entre os engenheiros de software que lutam para construir programas maiores e mais à prova de idiotas e o universo tentando produzir idiotas maiores e melhores. Até então, o universo está vencendo (Rick Cook)
[Email]
 
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Ir para:   
Powered by JForum 2.1.8 © JForum Team