| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/06/2005 17:16:36
|
jprogrammer
Virtual Machine Man
Membro desde: 04/02/2005 13:49:20
Mensagens: 546
Offline
|
Como faço paginação no hibernate.
Precisa me retornar o número total de registros.
Outra coisa: Descobri que não dá para ordenar por composite-elements.
ex:
Não posso ordenar em tempo de execução por qtd ou por descricao.
|
O bom menino !!! |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/06/2005 17:29:11
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
Ordene o Set, ue
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/06/2005 17:30:08
|
Filipe Sabella
GUJ Expert
Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline
|
setFirstResult
setMaxResults
|
Former LIPE. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/06/2005 17:41:04
|
jprogrammer
Virtual Machine Man
Membro desde: 04/02/2005 13:49:20
Mensagens: 546
Offline
|
Referente a ordenacao pode ser uma solução ordenar o Set na memória.
Se tiver exemplos...
|
O bom menino !!! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/06/2005 17:45:49
|
Mauricio Linhares
Moderador
![[Avatar]](/images/avatar/97af07a14cacba681feacf3012730892.jpg)
Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline
|
jprogrammer wrote:Referente a ordenacao pode ser uma solução ordenar o Set na memória.
Se tiver exemplos...
Faça os seus objetos implementarem a interface Comparable e em vez de colocar uma HashSet, coloque uma TreeSet como sendo a classe concreta da coleção.
|
Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr
Screencast de Introdução a linguagem Objective-C |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/06/2005 17:47:40
|
jprogrammer
Virtual Machine Man
Membro desde: 04/02/2005 13:49:20
Mensagens: 546
Offline
|
Posso fazer isso ?
This message was edited 1 time. Last update was at 01/06/2005 17:47:49
|
O bom menino !!! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/06/2005 17:50:00
|
Gerson
JavaChild
![[Avatar]](/images/avatar/ccb1d45fb76f7c5a0bf619f979c6cf36.jpg)
Membro desde: 26/01/2003 19:48:37
Mensagens: 113
Localização: São Paulo
Offline
|
Se estiver utilizando Hibernate 3 e Criteria API, você pode utilizar Projection (Projections.rowCount()) para obter o total de registro sem considerar a paginação (isto é, antes de setar setFirstResult e setMaxResults).
Se estiver utilizando Hibernate 2 e Criteria API, e não puder migrar para Hibernate 3!, tem um work-around q permite usar Criteria.count(). É só baixar uma versão "Patcheada" do hibernate aqui: http://opensource.atlassian.com/projects/hibernate/browse/HB-474
Mas lembrando que esssa versão não é oficial...
Espero ter ajudado!
|
---
Gerson K. Motoyama
(SCJA, SCJP, SCWCD, SCBCD, SCEA-I) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/06/2005 17:53:57
|
Mauricio Linhares
Moderador
![[Avatar]](/images/avatar/97af07a14cacba681feacf3012730892.jpg)
Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline
|
jprogrammer wrote:Posso fazer isso ?
Eu faço assim:
|
Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr
Screencast de Introdução a linguagem Objective-C |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/06/2005 17:57:35
|
jprogrammer
Virtual Machine Man
Membro desde: 04/02/2005 13:49:20
Mensagens: 546
Offline
|
Não dá "xábu" com o lazy-loading.
Maurício Linhares wrote:
Eu faço assim:
Assim eu tô instanciado o objeto desnecessariamente.
|
O bom menino !!! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/06/2005 17:59:30
|
Mauricio Linhares
Moderador
![[Avatar]](/images/avatar/97af07a14cacba681feacf3012730892.jpg)
Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline
|
Ah velho, então transforme sua coleção num array e dê um sort(), não tem mágica não
|
Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr
Screencast de Introdução a linguagem Objective-C |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/06/2005 19:14:26
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
Nao precisa transformar em array - basta "abracar" o Set que vem do Hibernate (que eh de um tipo proprio do Hibernate, por causa do lazy loading) em um TreeSet ou qualquer outra implementacao de SortedSet, assim oh:
Ou, se os elementos implementam Comparable, o que eh altamente recomendado nesse caso:
E, claro:
http://java.sun.com/j2se/1.4.2/docs/api/java/util/TreeSet.html#TreeSet(java.util.Collection)
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/02/2007 09:43:27
|
viktorfss
What is classpath?
Membro desde: 22/02/2007 09:31:52
Mensagens: 8
Offline
|
Pessoal, estou também com problemas para paginar uma consulta, mas no meu caso é devido a quantidade de registros que preciso retornar. No meu caso, não tenho condições de trazer todos os registros que preciso em tempo hábil e por isso preciso buscar em partes.
O problema é que já usei tags para paginar e também "setFirstResult" e "setMaxResults" mas a impressão que tive comparando o tempo das buscas (com 5, 100 e 1000 registros, sempre foi o mesmo tempo) é que o hibernate sempre trazia todos os itens e depois filtrava o que eu havia passado como parâmetro, o q não resolve o problema...
Já tentei usar lazy="true" para não precisar carregar toda a árvore de dados, mas preciso das informações dos nós filhos também...
Alguém teria alguma solução para paginação com uma quantidade grande de registros que não seja usar diretamente o sql ? Pode ser algum esquema de offset no hql, que ainda não encontrei...
Qualquer dica será muito bem-vinda ! Obrigado
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/12/2007 01:55:09
|
fabioissamu
JavaChild
Membro desde: 21/02/2007 16:48:46
Mensagens: 145
Localização: Rio de Janeiro
Offline
|
HHahahahahahA
Como eu fiquei de saco cheio de procurar coisas simples resolvi fazer hard code, só tem um problema,
como eu imprimo os links (código html) no struts 2?
método da classe de action
Minha classe de paginação
Tentativa de imprimir os links no struts 2
Ele imprime o código fonte > , etc. LOL
mas cheguei perto heheheeh
This message was edited 2 times. Last update was at 16/12/2007 01:59:38
|
se tanto faz, então escolha o melhor.
http://www.goals.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/12/2007 17:23:34
|
fabioissamu
JavaChild
Membro desde: 21/02/2007 16:48:46
Mensagens: 145
Localização: Rio de Janeiro
Offline
|
A solução para o meu caso é criar um POJO de link
e no JSP um iterator sobre os links
trocamos o método makelinks e getLinks para retornar List<Links>
E pronto a paginação simples funciona.
mas enfim, o melhor é o display tag pelo que eu tenho pesquisado...
This message was edited 3 times. Last update was at 20/12/2007 17:51:13
|
se tanto faz, então escolha o melhor.
http://www.goals.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/04/2009 10:11:43
|
renatocustodio
JavaGuru
![[Avatar]](/images/avatar/7e3da1dca2700e3225382921dd70b8c7.jpg)
Membro desde: 04/03/2008 07:21:24
Mensagens: 249
Offline
|
Eu estava analisando o sql gerado pelo hibernate/JPA no sql server usando setFirst e setMaxResults. Ele aparentemente trás todos até aquela quantidade e depois descarta os primeiros em memória não é isso?
Por exemplo se eu colocar um:
Na lista que eu vou receber vai estar apenas os 10 que começam a partir do 100, mas o sql irá buscar 110, correto? Isso me preocupou um pouco pois estou utilizando em projeto para fazer a paginação e que poderá ter milhares de itens conforme os critérios de pesquisa, e uma paginação pequena para melhorar o desempenho, mas se for isso mesmo o desempenho do ponto de vista do select no banco será a mesma coisa....
Existe alguma outra forma? tipo, parecido com o limit no MySQL
|
|
|
 |
|
|