Dúvida busca findAll
18/02/2014 14:30
0
Bom dia, gostaria de compreender melhor como funciona uma busca, no caso o findAll, com o uso do DatachedCriteria usando hasMany.

Eu tenho as seguintes domains:

A {
String nome;
static hasMan= [b : B]
}

B {
String nome;
}

Ao executar o script o hiberne me cria uma tabela chama a_b, para o relacionamento de hasMany.

Eu tentei utilizar algo como:

def res = A.findAll{
b {
eq 'nome', 'carlos'
}
}

Mas ele me retorna mais valores que o esperado.

Minha dúvida é como utilizar corretamente o criteria para a busca de todos os objetos de A que tenham uma propriedade de B;
Tags: grails, domain, criteria


0
Não sei se te serve, mas eu criaria um método na domain

static A findByBNome(String nome){
A.find(
'from A a where a.b.nome = :nome',
[nome: nome])
}

e sempre que precizasse chamaria

A.findByBName("nome")

Sempre uso esse recurso quando preciso buscar em relacionamentos hasMany, ainda mais se essa busca for se repetir várias vezes.
18/02/2014 18:05



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto