Loading ...
Sorry, an error occurred while loading the content.

Res: Res: [riojug] retorno de busca no hibernate

Expand Messages
  • Francis Martins
    Victor, Se vc fizer a query do new Map (minha segunda sugestao) a sua tag do struts deve (espero) funcionar corretamente, pois o retorno sera uma coleçao de
    Message 1 of 1 , Oct 4, 2006
    • 0 Attachment
      Victor,

         Se vc fizer a query do "new Map" (minha segunda sugestao) a sua tag do struts deve (espero) funcionar corretamente, pois o retorno sera uma coleçao de Maps e cada item (Map) tera uma chave "ano" .

         Particularmente eu sou fã de usar as tags JSTL ao inves das do struts. Eu sei q a primeira vista é sedutor usar <html:options> mas IMHO a JSTL interage muito melhor com EL do q as tags do struts, e mais uma vez IMHO tenho muito mais liberdade para compor minhas tags html.

         []s
         Francis


      ----- Mensagem original ----
      De: Victor Hugo Muniz Machado <victorhugomuniz@...>
      Para: riojug@yahoogroups.com
      Enviadas: Terça-feira, 3 de Outubro de 2006 19:09:01
      Assunto: Re: Res: [riojug] retorno de busca no hibernate

      Oi Francis,
       
      o meu problema maior são os objetos que são colocados no meu collection não são do tipo Calendario como as outras vezes que faço consultas nesnte modulo do meu programa
      neste caso especifico está sendo colocado no meu List objetos Integer dai,
      <html:options collection=" listaAno" property="ano" labelProperty= "ano"/>
      nessa linha, especificamente no property="ano" , o meu servlet não encontra um metodo getAno() no meu objeto
       
      eu fiz uma gambiarra no JSP, ainda vou colocar em tag libs e claro ... mas gostaria de entender este outro jeito seu na query ... ainda não entendi
       
      <%
            List listaAno = (List) request.getAtributt e("listaAno" )
            for (int i = 0; i < listaAno.size( ); i++) {
      %>
      <html:option value="<%= Integer.toString( (Integer) listaAno. get(i))%> ">
            <%= Integer.toString( (Integer) listaAno. get(i))%>
      </html:option>
      <%} // fecha FOR%>
       
      não é tão gambiarra assim, o problema são os castings
       
      isso é so a combo ano pois tem a mes que vai funcionar em função da ano, ou seja, tem q ser melhorado pois são muitos requests e nem eu to entendendo mais o meu metodo iniciar no action imagina o metodo filtrar que assione no onChange das combos
      ta brabo aqui o negocio se tu puder me ajudar melhor com essa sua outra query ai
      grato
      []'s

      Francis Martins <joseth_desc- riojug@yahoo. com.br> escreveu:
      Vitor,

          Se nao me engano, quanto vc faz um query assim ele retorna uma Collection<Object[]> , assim se vc estiver usando JSTL e o forEach vc pode referenciar cada item como
      <c:forEach var="x" items="listaAno">
          ${x[0]}
      </c:forEach>
      como usar isso nas tags do struts eu nao sei.

      vc pode alternativamente fazer a sua query assim

      select new Map( distinct(c.ano) as ano )
      from xxx as c

      assim o retorno da consulta será Collection<Map> e vc podera usar as tags do struts conforme estao

      []s
      Francis

      ----- Mensagem original ----
      De: Victor Hugo Muniz Machado <victorhugomuniz@ yahoo.com. br>
      Para: riojug@yahoogroups. com
      Enviadas: Terça-feira, 3 de Outubro de 2006 11:18:15
      Assunto: [riojug] retorno de busca no hibernate

      seguinte
      uso tambem o struts ..
      preciso povoar uma combo de um jsp com o resultado de uma consulta no banco, porem tenho que usar o distinc na query

      no meu action
      List listaAno = gerPersist.find( "select distinct(c.ano) from " + Calendario.class. getName() + " as c");
      request.setAttribut e("listaAno" , listaAno);

      no meu jsp
      <html:select property="idAnoSel" onchange="metodo. value='filtrar' " name="calendarioFor m" styleClass=" textBox">
      <html:options collection=" listaAno" property="ano" labelProperty= "ano"/>

      struts-config
      <form-property name="idAnoSel" type="java.lang. String" />
      //acho ate que nem precisa dessa lista aqui
      <form-property name="listaAno" type="java.lang. String[]" />
       

      o que ta pegando: o tipo de retorno da busca não é um objeto Calendario por causa da clausula distinct, ou seja o jsp não acha um metodo getAno() para o meu property ano...

      ja tentei fazer a query retornar para uma lista e dessa povoar um objeto calendario e então povoar outra lista com esse objetos porem tambem não deu certo pois a classe calendario e de persistencia

      como vou fazer isso ?

      Você quer respostas para suas perguntas? Ou você sabe muito e quer compartilhar seu conhecimento? Experimente o Yahoo! Respostas!



      Yahoo! Search
      Música para ver e ouvir: You're Beautiful, do James Blunt


      O Yahoo! está de cara nova. Venha conferir!




      Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador agora!
    Your message has been successfully submitted and would be delivered to recipients shortly.