Não consigo acessar coleção retornada por
20/02/2015 19:54
0
Olá, pessoal. Tenho uma action parecida com o exemplo abaixo:

//Domain

class Artigo {
String titulo
String texto
}

class Usuario {
String username
String password

static hasMany = [artigos:Artigo]
}

//Controller
class ExemploController {
def springSecurityService

def artigos() {
respond springSecurityService.currentUser.artigos
}
}

View:

<g:if test="${!artigoList.isEmpty()}">
<!-- TODO listar artigos -->
</g:if>


Com base no exemplo acima, quando acesso
localhost:8080/app/teste/artigos
, uma NullpointerException é lançada:

Message: Cannot invoke method isEmpty() on null object


Acredito que o problema possa estar sndo causado porque estou retornando uma coleção de "proxies". Assim o respond não esta nomeando a variavel que da acesso a minha coleção da forma esperada.

Alguma sugestão de como resolver isso?
Grato
Tags: respond rest


0
Cara eu posso estar falando besteira, já que também estou aprendendo. Mas acho que vc deve colocar a sua classe de usuário conforme a baixo.


class Usuario {
String username
String password
static belongsTo = Artigo
static hasMany = [artigos:Artigo]
}


0
Olá, Rogério. Obrigado pela resposta.
Acho que nesse caso não preciso usar belogsTo porque trata-se de um relacionamento unidirecional. Vide documentação.
Porem eu esqueci de incluir um detalhe no exemplo.
Na verdade a minha classe Artigo seria mais ou menos assim:

class Artigo {
String titulo
String texto

static belongsTo = [Usuario]
}

Embora o relacionamento seja unidirecional, acabei incluindo o belongsTo na classe artigo para permitir que eu faça operações em cascata. Não sei até que ponto isso interfere no meu problema.
21/02/2015 11:48



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