Hibernate Criteria

Fala galerinha…

To precisando de um help…

Meu problema é o seguinte.

Através de um form (RICHFACES) é realizada uma pesquisa no banco.

No momento da pesquisa, os valores dos campos setam meu objeto.

Ex:

Tenho as classes Pais, Estado e Cidade com seus devidos atributos…

Pais tem como atributos:
IdPais
Estado
Cidade

No momento da pesquisa é setado na classe Pais esses tres atributos da seguinte forma:

estado.setNome(nomeEstado);
cidade.setNome(nomeCidade);

pais.setEstado(estado);
apsi.setCidade(cidade);

Através desses dados setados irão ser adicionados os critérios de busca no banco.

O objeto passado para a classe que executa a pesquisa é uma instancia d Pais.

Para fazer a busca pelo Id de Pais, faço da seguinte forma:

Criteria criteria = session.createCriteria(pais.getClass());
	criteria.add(Restrictions.eq("idPais", pais.getIdPais()));

Porém para pegar por exemplo pelo nome da cidade eu não to conseguindo…

Já tentei fazer algo tipo:

criteria.add(Restrictions.eq("pais.cidade", pais.getCidade().getNome()));

Mas não consigo acessar o atributo nome da classe Cidade através do objeto pais.

Alguém tem alguma idéia, sugestão, solução?

Abraço!!!

vai estudar

A mãe vai bem?

Bons tempos de GUJ…

Cara, só não vou te dar esse Help, porque não sei mesmo, mas não podia deixar de comentar essa grosseria desmedida e sem necessidade de alguém que chegou outro dia e não sabe pra que serve o GUJ de verdade…

No mais, boa sorte ao criador do tṕico…

Falows :wink:

Bons tempos de GUJ…

Cara, só não vou te dar esse Help, porque não sei mesmo, mas não podia deixar de comentar essa grosseria desmedida e sem necessidade de alguém que chegou outro dia e não sabe pra que serve o GUJ de verdade…

No mais, boa sorte ao criador do tṕico…

Falows ;)[/quote]

Valeu ae meu camarada…

Existem pessoas e retardados sem noção…

haha

Faz parte!

Abraço

Bons tempos de GUJ…

Cara, só não vou te dar esse Help, porque não sei mesmo, mas não podia deixar de comentar essa grosseria desmedida e sem necessidade de alguém que chegou outro dia e não sabe pra que serve o GUJ de verdade… [/quote]

Realmente é uma grande grosseira. Esse cara que chegou a pouco tempo falando uma coisas dessas. Depois vai querer ajuda quando postar algum tópico com alguma dúvida.

Agora a respeito a dúvida do nosso amigo

Qual é o erro que está gerando no log da aplicação. Posta qual é para que possamos analisar e te ajudar.

Tente o seguinte:

Criteria criteria = session.createCriteria(pais.getClass()); criteria.createAlias("cidade", "cidade"); criteria.add(Restrictions.eq("cidade.nome", pais.getCidade().getNome()));Vê se resolve! Flw! :thumbup:

Bons tempos de GUJ…

Cara, só não vou te dar esse Help, porque não sei mesmo, mas não podia deixar de comentar essa grosseria desmedida e sem necessidade de alguém que chegou outro dia e não sabe pra que serve o GUJ de verdade… [/quote]

Realmente é uma grande grosseira. Esse cara que chegou a pouco tempo falando uma coisas dessas. Depois vai querer ajuda quando postar algum tópico com alguma dúvida.

Agora a respeito a dúvida do nosso amigo

Qual é o erro que está gerando no log da aplicação. Posta qual é para que possamos analisar e te ajudar.[/quote]

O que dá é que ele não encontra a propriedade.

SEVERE: org.hibernate.QueryException: could not resolve property: pais.cidade

Se eu instânciar uma nova criteria passadnfo “cidade” como parâmetro e buscando a propriedade “nome” ele encontra…

Problema é que tenho vários atributos desse tipo e nessa caso teria que instancia um criteria pra cada um, sendo q no final retorno uma única lista com os resultados…

abraço

Eu customo fazer assim quando tenho uma entidade que possui relacionamentos

Veja que na minha criteria eu crio um alias para o meu relacionamento

List pais = session.createCriteria(Pais.class)
                   .createAlias("cidade", "cd")
                   .add( Restrictions.eq("cd.codCidade", "1") )
                   .list();

Se você tiver certeza que a consulta ira retornar um uníco resultado

Pais pais = (Pais)session.createCriteria(Pais.class)
                   .createAlias("cidade", "cd")
                   .add( Restrictions.eq("cd.codCidade", "1") )
                   .uniqueResult();

[quote=paulofafism]Eu customo fazer assim quando tenho uma entidade que possui relacionamentos

Veja que na minha criteria eu crio um alias para o meu relacionamento

List pais = session.createCriteria(Pais.class)
                   .createAlias("cidade", "cd")
                   .add( Restrictions.eq("cd.codCidade", "1") )
                   .list();

Se você tiver certeza que a consulta ira retornar um uníco resultado

Pais pais = (Pais)session.createCriteria(Pais.class) .createAlias("cidade", "cd") .add( Restrictions.eq("cd.codCidade", "1") ) .uniqueResult(); [/quote]

Cara… era isso mesmo…

Da mesma forma que o von.juliano falou tbm…

Eu já tinha tentado criando o alias, porém, tinha tentado acessar o atributo direto, sem colocar o alias na frente…

Abraço meus camaradas…

Valeu pela força!

Bom dia

gostaria de esclarecer.

trabalho com analista tb chamado pablo e ele me disse que tinha se cadastrado no guj , fui blicar dizendo olha vau estudar mas numa boa achando que meu amigo. gostaria de pedir desculpas pela brincadeira

ok

[quote=fernandoborelli]Bom dia

gostaria de esclarecer.

trabalho com analista tb chamado pablo e ele me disse que tinha se cadastrado no guj , fui blicar dizendo olha vau estudar mas numa boa achando que meu amigo. gostaria de pedir desculpas pela brincadeira

ok[/quote]

Blz…

Retiro oq eu disse.

Flw