
0

0
09/03/2010 00:00
Bem, eu nunca tentei, mas acredito que seja possível ok?
Uma das maneiras de se efetuar consultas com Grails é usando a HQL do Hibernate. Sendo assim, se você quiser fazer uma consulta, por exemplo: todos os seus Arquivos cujo nome é "coisa", o código abaixo seria válido:
Arquivo.findAll("from Arquivo a where a.nome = 'coisa'")
E na HQL, se você quer que o valor de retorno seja apenas um campo, basta incluir um select antes na sua consulta. Então, chutando, imagino que seja um código como este:
def campoUnico = Arquivo.findAll("select nome from Arquivo a where nome = 'coisa'")
Para mais detalhes sobre o uso da HQL com Grails, veja este link: <!-- m --><a class="postlink" href="http://grails.org/doc/latest/guide/5.%20Object%20Relational%20Mapping%20(GORM">http://grails.org/doc/latest/guide/5.%2 ... ng%20(GORM</a><!-- m -->).html#5.4.3%20Hibernate%20Query%20Language%20(HQL)
Para mais detalhes sobre a HQL em si, da uma olhada neste: <!-- m --><a class="postlink" href="http://docs.jboss.org/hibernate/stable/core/reference/en/html/queryhql.html">http://docs.jboss.org/hibernate/stable/ ... ryhql.html</a><!-- m -->
E depois nos conte o resultado ok?
Dica: faça um teste com o Grails Console primeiro (basta executar o comando grails-console na linha de comando). ELe é uma interface gráfica no qual você pode experimentar seus códigos para ver como funciona.
Grande abraço e aguardo seu retorno ok?
Henrique Lobo Weissmann (Kico)
Pontos: 1485

0

0
09/03/2010 00:00
Eu tive um caso parecido para trazer só a chamada da noticia na capa de um portal. Voce pode usar Projections :
def noticiasList = Noticia.withCriteria {
eq("entidade",session.entidade)
projections {
property "alteradoEm"
property "titulo"
property "chamada"
property "id"
}
maxResults 4
order("alteradoEm","desc")
}
No caso acima irá trazer 4 campos ao inves de toda a tabela de noticias .
Herrera
Herrera
Pontos: 1

0

0
09/03/2010 00:00
Ei Herrera,
bacana isto! Sempre usei projections mais para sumarizar dados. Vivendo e aprendendo!
Henrique Lobo Weissmann (Kico)
Pontos: 1485

0

0
11/03/2010 00:00
Olá todos! Consegui listar os títulos sem os OBJETOS do banco, e sim, SOMENTE com campos (atributos) isolados com o método: executeQuery!
def list = {
def arquivo = Arquivo.executeQuery( "select a.titulo, a.id, a.criadoEm, a.autor, a.setor, a.categoria from Arquivo a" )
params.max = Math.min(params.max ? params.int('max') : 10, 100)
[arquivo : arquivo, arquivoTotal: Arquivo.count()]
}
o método acima envia uma lista somente com os campos que você que enviar para a view!
Obrigado Kiko!
arquimedesurf
Pontos: 0