Problema de Pesquisa com relacionamento
05/10/2010 00:00
0
preciso filtrar os nomes das escolas da classe AlocacaoEscola

Class AlocacaoEscola {
....
Escola escola
....... }


Class Escola {
.........
String nomeEscola
static hasMany = [alocacaoEscola: AlocacaoEscola]
......

String toString(){
"${this.nome}"
}
}

pelo método toString em Escola, no list da classe AlocacaoEscola é mostrado o nome da Escola


Preciso de uma solução para filtrar determinados registros da classe Alocacao a partir da condiçao nomeEscola like(%São José%).

tentei os seguintes soluções

def pesquisaAlocacaoEscola = {
if (request.method == 'POST') {
def alocacaoEscolaInstanceList = AlocacaoEscola.findAllByEscolaLike('%' + params.nome + '%')
def alocacaoEscolaInstanceTotal = alocacaoEscolaInstanceList.count()
render(view:'list', model:[ alocacaoEscolaInstanceList:alocacaoEscolaInstanceList, alocacaoEscolaInstanceTotal:alocacaoEscolaInstanceTotal])
}
}



def pesquisaAlocacaoEscola = {
if (request.method == 'POST') {
def pesquisa = AlocacaoEscola.createCriteria()
def resultado = pesquisa.list {
Escola {
like('%' + params.nome + '%')
}
}
def resultadoTotal = resultado.count()
render(view:'list', model:[ resultado:resultado, resultadoTotal:resultadoTotal])
}
}


SE ALGUÉM PUDER ME DAR UMA LUZ.
Tags: Tópicos avançados


0
Simples,

o método toString não deve ser usado para fazer consultas. Bom: supondo que a sua escola tenha um atributo chamado nome, você poderia fazer das seguintes maneiras:

1. Com duas consultas.


def escolas = Escola.findAllByNomeLike("escolinha do%")
def alocacoes = AlocacaoEscola.findAllByEscolaInList(escolas) // problema resolvido


2. Com criterias

def criteria = AlocacaoEscola.createCriteria()
def alocacoes = criteria.list {
'in'(escola: Escola.findallByNomeLike("escolinha do%"))
}


0
kicolobo

Muito Obrigado,

Com a solução das duas consultas consegui resolver o problema (ainda bem, já estava nisso a dois dias)

com criterias ainda não consegui resolver, talvez falta alguma adaptação, mas vou pesquisar
05/10/2010 00:00


0
Falou, precisando, to ai!



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