DWR Hibernate Lazy load

Al combinar Hibernate con DWR, en algún momento tendremos que obtener objetos de la forma Lazy Load y si utilizamos el convertidor estándar de DWR al querer acceder a estos objetos puede presentarsenos una LazyInitializationException.

Básicamente quiere decir que intentamos acceder a información fuera de la transacción mediante el objeto proxy que se crea al decir que una colección sea cargara Lazy Load,para solucionar esto tenemos las siguientes opciones:

  • Cargar todo el objeto antes de que finalice la transacción y al momento de que DWR convierta nuestro bean tendrá los objetos cargados y no los proxys en sus propiedades, esto se logra mediante la carga Eager o utilizando el método size.

  • Usar el convertidor HibernateBeanConverter de DWR y así no tendremos que cargar toda la información relacionada con el objeto, esto ayudara en el rendimiento de la aplicación, lo único que hay que hacer es decir mediante el fichero de configuración que se usara este convertidor de la siguiente forma:

<dwr:convert type="hibernate3" class="com.ejemplo.model.*" />  

Podemos encontrar como funciona el Lazy Load aquí

Fuente:

Jesús Perales

Read more posts by this author.

Subscribe to Jesús Perales

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!