2010-10-01 11 views
0

Je suis riche: datable ayant 500 (ligne) de données et j'utilise riche: datascroller pour la pagination mais le problème est que toutes les données sont récupérées à la 1ère fois, donc si quelqu'un ayant un façon dont cliquez sur la page 2 hibernate récupère les lignes de la table (11-20). J'utilise Spring + Hibernate. S'il vous plaît donner une solution en détail.Utilisation de riches datascroller Avec Hibernate Pagination sur le serveur

Répondre

1

Vous auriez besoin d'un modèle de données personnalisé et d'un fournisseur de données personnalisé. Le fournisseur de données prendra soin d'aller chercher des résultats limités, en utilisant query.setMaxResults(..). Notez que puisque vous utilisez Spring, il serait bon que votre instance DataProvider soit gérée par Spring.

Here est un code que nous avons utilisé à cette fin.

+0

Ya bozho spring gère le mode hibernation. Je ne reçois pas de la solution donnée par le lien. Je peux utiliser Projection pour rowCount()? . Mais aussi, je suis un peu confus .... – TaherT

+0

@taher - vous pouvez utiliser ce que vous voulez dans votre implémentation 'DataProvider'. Copiez simplement le modèle de données et créez une nouvelle implémentation 'DataProvider'. Ses méthodes sont simples à mettre en œuvre. – Bozho

0

Vous pouvez faire votre propre analogie de défilement de données avec une tâche: rendre par l'intermédiaire d'ajax la table que U utilise pour les dossiers affichant!

par exemple.

<rich:dataTable id="dtId" rows="10" value="#{bean.records}" var="record"> 
     // content (records) 
</rich:dataTable> 

votre propre barre de défilement:

<a4j:repeat value="#{bean.pages}" var="page"> 
    <a4j:commandLink value="#{page}" render="dtId" 
      actionListener="#{bean.myListener()}"> 
     <f:param name="selectedPageNumber" value="#{page}" /> 
    </a4j:commandLink> 
    </a4j:repeat> 

vous obtiendrez une table et lissée. comme cela après: 0 1 2 3 4 5 (# {bean.pages} - juste des chiffres - signifie des pages) et avec un clic sur chaque lien (...) votre auditeur (myListener) peut récupérer une nouvelle partie des données de la base de données et mettre à jour # {bean. enregistrements} liste et après le ré-enregistrement, vous aurez une table avec de nouvelles données!