Lazy Loading en ice:dataTable con ICEfaces

¿Que és lazy loading? pues traduciendolo a mi manera en español podria referirse a carga ociosa, es decir carga ociosa de datos. ¿para que se utiliza? sucede que cuando se utiliza un dataTable con JSF siempre se le envia la lista completa de registros que se obtienen de una busqueda en la base de datos y los carga todos de una vez en la tabla para usarlos con un paginador, ¿pero que sucede si tenemos una busqueda de miles de registros? no podemos carga toda esa lista en el dataTable, entonces surge la necesidad de solo traer que necesitamos ver en el paginador por bloques.

Algunos diran que ya existe un articulo en la documentación oficial de ICEfaces para realizar un lazy loading, pero el punto es que es muy dificil de entender ya que agregan otras funcionalidades que estan demas y mi objetivo es simplificar el entendimiento de la técnica.

En esta ocasión utilizare netbeans, tomcat y spring para el acceso a datos.

Utilizare tambien la tabla "Manufacturer" de la base de datos derby "Sample" embebida en netbeans, ya que es la unica que tiene algunos cuantos registros para efectos de prueba.

No entrare en detalle de como configurar un proyecto JSF con ICEfaces ni de como integrarlo con Spring para el acceso a datos, supondre que se ha leido las entradas respectivas.

Suponiendo que ya se ha generado el entity de la tabla Manufacturer creo mi acceso a datos.



Luego la implementación



Luego creo mi configuracion en spring



Ahora la parte fundamental es crear un custom DataModel



Ahora me dedico a crear los managed beans.





Por ultimo el diseño de la página xhtml



El resultado sera el siguiente

A través del trace se puede observar que por cada vez que se cambia de pagina se obtiene el bloque de registros que interesa.

Adjunto el codigo fuente para efectos de estudio.

Comentarios (2)

2 Response to "Lazy Loading en ice:dataTable con ICEfaces"

  1. Michael Rojas says:
    miércoles, mayo 09, 2012
    Este comentario ha sido eliminado por el autor.
  2. Michael Rojas says:
    miércoles, mayo 09, 2012

    Tu guía está perfecta, me sirvió de mucho porque como dices todas las demás agregan funcionalidades que no son necesarias y lo único que hacen es complicar el como entender la idea principal.

    Muchas Gracias :D