Realizar uma pesquisa SOMENTE com NOME do arquivo no banco
Postado em 09/03/2010 00:00
0
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
arquimedesurf
Pontos: 0






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 é &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?

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(&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

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( &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!

arquimedesurf
Pontos: 0



 


Esqueceu sua senha?
 
Grails Brasil é mantido por itexto Desenvolvimento de Projetos Ltda.
Em caso de problemas, sinta-se livre para procurar Henrique Lobo Weissmann (Kico) por e-mail: kicolobo@itexto.net
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão (clique no logo à direita para maiores detalhes)