/ Java

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: