[RESOLVIDO]DataTable Lazy, ordernar por Data (desc)

5 respostas
E

Pessoal, fiz um datatable, utilizando o metodo lazy, consegui fazer normalmente, mas gostaria de order por data, por exemplo, esta saindo assim :

data

04/04/2013
04/04/2013
04/04/2013
05/04/2013

Gostaria que saisse assim :

05/04/2013
04/04/2013
04/04/2013
04/04/2013

Alguem pode me dar uma luz??

segue abaixo meu codigo :

cadguiaList = new LazyDataModel<Cadguia>() {    
            @Override  
            public List<Cadguia> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, String> filters) {  
                     int paginacao; 
                     paginacao = 0;               
                     String Clausula ="";
                        for(Iterator<String> it = filters.keySet().iterator(); it.hasNext();) {
                            String filterProperty = it.next(); // table column name = field name

                            String filterValue = filters.get(filterProperty);
                           
                           
                            Clausula = "where c."+filterProperty+" like'%"+filterValue+"%'";
                            paginacao=1;
                            cadguia = servico.buscafindCadguia(first, pageSize,Clausula,1);

                         }                
                
                 if (paginacao==0){
                    cadguia = servico.buscafindCadguia(first, pageSize,"",1);
                 }
                 
                  return cadguia;
            }

5 Respostas

K

porque vc não faz a ordenação na consulta ao banco?

E

minha consulta esta assim :

@Interceptors({GerenciaTransacaoInterceptor.class})  
   public List<Cadguia> findCadguia(int startingAt, int maxPerPage,String clausulapage, int vcodguia) {
       String query="";
          if (clausulapage == ""){
               String queryinterna = "select c from Cadguia c ";   
               query=queryinterna;
           }    
          
          if (clausulapage != ""){
               String queryinterna = "select c from Cadguia c "+clausulapage;   
               query=queryinterna;
           }    
          
               
            return (List<Cadguia>) emAux.createQuery(query).setHint("eclipselink.refresh", true).
                                         setFirstResult(startingAt).setMaxResults(maxPerPage).getResultList();
}

order by nao funcionou na minha consulta .

fredericomaia10

Uma HQL com order by é simples:

select p from Produto p order by p.dataDeCompra

Por padrão é usado asc (ascendente), pode colocar desc no final da query para ser descendente.

augustovieira
if (clausulapage == ""){
               String queryinterna = "select c from Cadguia c order by c.data desc ";   
               query=queryinterna;
           }

Isso não corrige?

E

deu certo mano, deve ter sido alguma marcacao minha .

vlw galera.

Criado 5 de abril de 2013
Ultima resposta 5 de abr. de 2013
Respostas 5
Participantes 4