From time to time the Session will execute the SQL statements needed to synchronize the JDBC connection's state with the state of objects held in memory. This process, flush, occurs by default at the following points
- before some query executions
- from org.hibernate.Transaction.commit()
- from Session.flush()
The SQL statements are issued in the following order
- all entity insertions, in the same order the corresponding objects were saved using Session.save()
- all entity updates
- all collection deletions
- all collection element deletions, updates and insertions
- all collection insertions
- all entity deletions, in the same order the corresponding objects were deleted using Session.delete()
De todas formas muchas gracias
Victor Gerber <gerber.victor@...> escribió:
http://www.hibernate.org/hib_ docs/v3/api/ org/hibernate/ class-use/ FlushMode. html
Te dice el uso de los distintos flush modes.
session.setFlushMode(FlushMode. ALWAYS);
y hay varios más en ese link, explicados.On 8/2/07, Ignacio Poletti < ignacio@polesoft.com.ar > wrote: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! .