Tengo una clase DAO la cual persiste mis objetos utilizando Hibernate, ahora bien, en una transaccion persisto varios objetos de una lista. Devo mantener la integridad y si alguno de estos objeto de la lista falla debo hacer el roolback de todo, pero esto me implica hacer el flush luego del metodo save de la session para conocer si el objeto fue persistido correctamente
Por su puesto el metodo save de mi dao es generico para todos los objetos, con lo cual cada vez que hago el save, se ejecuta el flush
Estaria mal hacer esto
De todas formas muchas gracias por ayudarme
Un abrazo
Dario
Ignacio Poletti <ignacio@...> escribió:
Por lo que lei alguna vez no se hace el flush constantemente por una
cuestion de performance, es mejor en este aspecto enviar a ejecutar un
conjunto de instrucciones (buffer) que hacerlo de a una (lo mismo sucede
al escribir un archivo a disco).
No se si se podrá configurar un "autoflush".
saludos
Dario Javier Nutz wrote:
> Gracias Ignacio,
>
> Por lo que vi hasta ahora parece la mejor solución, lo que me gustaria
> saber ahora si es lo que todos usan luego de ahcer un session.save o
> hay alguna otra forma. No entiendo si esta es la manera correcta
> porque los desarrolladores de hibernate no ponen el flush internamente
> en el save
>
> de todas formas muchas gracias por tu ayuda
>
> Dario
>
> Ignacio Poletti <ignacio@polesoft.com.ar > escribió:
> Con un session.flush() luego del .save() va a forzar a ejecutar
> el SQL, si
> hay un error de constraint te vas a enterar por una excepcion.
>
> Si no usas un flush los SQL los puede ejecutar al hacer el commit o
> antes,
> en cualquier momento.
>
> No se si te sirve o si es prolijo...
> Saludos
>
> Ignacio
>
> Dario Javier Nutz wrote:
> > Hola,
> >
> > Necesito ayuda con lo siguinete: Hice una aplicacion web con tomcat
> y
> > en un a clase SessionFilter en el metodo doFilter hago la llamada a:
> >
> > Session session =
> > HibernateUtil.getSessionFactor y().getCurrentSe ssion();
> > session.beginTransaction();
> >
> > try {
> > chain.doFilter(request, response);
> > session.commit();
> > } catch(Exception e) {
> > session.rollback();
> > }
> >
> > De esta forma puedo obtener objetos con configuración LAZY que se van
> > cargando a medida que los muestro sus atributis en los JSP.
> >
> > El tema es que si creo un objeto y por ejemplo este ya existe no me
> entero
> > hasta que termina el requerimiento.
> >
> > La que se me ocurrio fue hacer el commit luego de hacer el session.save
> > pero tengo que asumir que otro proceso en el mismo requerimiento puede
> > haer una consulta y en ese caso ya no tengo una transaccion activa para
> > utilizar la propiedad LAZY.
> >
> > Alguien puede darme una mano?
> >
> > Gracias.-
> >
> > Dario
> >
> >
> > --------------------- --------- ---
> >
> > Sé un Mejor Amante del Cine
> > ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!.
> >
>
>
>
>
>
>
> Dario Javier Nutz
>
> AG Developments SA
> Sistemas y Comunicaciones
> --------------------- --------- ---
> Perú 590 - Piso 10 - Oficina 'C'
> Ciudad de Buenos Aires - Argentina
> Te: (5411) 4342-3135
> Cel:15-5472-1825
> e-mail:dario.nutz@agdevelopments-sa. com
> web: http://www.agdevelopments-sa. com
>
> --------------------- --------- ---
>
> Sé un Mejor Amante del Cine
> ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!.
>
Dario Javier Nutz
AG Developments SA
Sistemas y Comunicaciones
Perú 590 - Piso 10 - Oficina 'C'
Ciudad de Buenos Aires - Argentina
Te: (5411) 4342-3135
Cel:15-5472-1825
e-mail:dario.nutz@...
web: http://www.agdevelopments-sa.com
Sé un Mejor Amante del Cine
¿Quieres saber cómo? ¡Deja que otras personas te ayuden! .