Realizar uma pesquisa SOMENTE com NOME do arquivo no banco
09/03/2010 00:00
0
Tenho uma tabela arquivos com vários campos, inclusive um do tipo Byte chamado arquivo. E quero exibir a lista dos arquivos na view, para isso tenho que "pegar" somente a listagem dos nomes dos arquivos, pois se pegar todos os objetos ocorre estouro de memória! ok?
Minha dúvida é, como fazer essa pesquisa para trazer somente os nomes dos arquivos!?

Obrigado!
<!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
Tags: Grails


0
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 é &quot;coisa&quot;, o código abaixo seria válido:


Arquivo.findAll(&quot;from Arquivo a where a.nome = 'coisa'&quot;)


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(&quot;select nome from Arquivo a where nome = 'coisa'&quot;)


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?


0
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(&quot;entidade&quot;,session.entidade)
projections {
property &quot;alteradoEm&quot;
property &quot;titulo&quot;
property &quot;chamada&quot;
property &quot;id&quot;

}
maxResults 4
order(&quot;alteradoEm&quot;,&quot;desc&quot;)
}



No caso acima irá trazer 4 campos ao inves de toda a tabela de noticias .

Herrera
09/03/2010 00:00


0
Ei Herrera,

bacana isto! Sempre usei projections mais para sumarizar dados. Vivendo e aprendendo!


0
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( &quot;select a.titulo, a.id, a.criadoEm, a.autor, a.setor, a.categoria from Arquivo a&quot; )

params.max = Math.min(params.max ? params.int('max') &#58; 10, 100)
[arquivo &#58; arquivo, arquivoTotal&#58; Arquivo.count()]
}



o método acima envia uma lista somente com os campos que você que enviar para a view!

Obrigado Kiko!
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