Dá pra fazer com dynamic finders?
10/03/2010 00:00
0
Olá pessoal,
estou fazendo um sistema de bolão e estou com o seguinte problema.
Eu tenho uma classe para Jogos e uma Classe para Palpites. 1 Jogo, pode ter vários palpites (1 de cada usuário). Esse relacionamento está feito e tá legal (hasMany[bets:Bet]).
A questão é: Eu tenho uma página onde os usuários darão o palpite de cada jogo. Tenho então um list() da classe Jogos que retornar todos os jogos e, logo abaixo de cada jogo, eu tenho um formulário para o usuário cadastrar o papalpite do mesmo jogo. Se o usuário já tiver feito o palpite daquele jogo, eu mostro o placar que ele sugeriu nesse formulário.
Como eu posso listar todos os jogos e retornar na propriedade do relacionamento (bets) somente o palpite do usuário logado ?

Algo tipo:
def jgs = Jogos.list()
for (j in jgs) {
for (b in j.bets) {
print b.findByUsername(User.get(1))
}
}

É possível eu listar todos os jogos e retonar na propriedade do relacionamento somente os objetos (palpites) de um usuário especifico ?

At,
Tags: Grails


0
Você quer retornar uma única propriedade, certo?

Se for isto, da uma olhada neste tópico: <!-- l --><a class="postlink-local" href="http://www.grailsbrasil.com/viewtopic.php?f=1&amp;t=889">viewtopic.php?f=1&amp;t=889</a><!-- l -->


0
Na verdade eu resolvi mas acho que um jeito feio:

def matches = WorldCupMatch.list(params)
for (m in matches) {
m.mybet = WorldCupMatch.getBet(m.id, authenticateService.userDomain().id)
}

Explicando: WorldCupMatch hasMany (bets:Bet). Quando eu retorno um jogo, se eu acessar a propriedade bets, eu retorno a lista inteira de apostas de TODOS usuários para aquele jogo. E na verdade, como estou logado, eu precisava retornar somente a aposta que EU fiz.
Ai criei uma propriedade mybet (transient) e criei esse metodo getBet() onde passo o jogo e o usuario. Faço o loop nos jogos e associo a propridade mybet somente o objeto Bet que pertence a mim, ou seja, somente a aposta que eu fiz.

Assim, na listagem dos jogos, eu posso mostrar abaixo a minha aposta para aquele jogo, se existir. Pelo menos resolvi tudo no controller né, não fiz nenhuma gambi na view.
11/03/2010 00:00



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