Roberto: el flush manda a la db todo lo pendiente (update, delete, insert) mientras que el commit lo que hace es confirmar una transacción.
Si en tu aplicación necesitás recurrir continuamente al flush es un signo que hay algo que estás manejando mal o que estás pensando en tablas en lugar de pensar en objetos. Javier: el caso de un mal mapeo es como lo contás, luego nh interpreta como que el objeto está modificado y lo va a intentar actualizar. de todas formas creo que la solución a eso es escribir "bien" el mapeo, nh puede interpretar varias cosas, como los type de las propiedades, por lo que lo recomendable es no especificarle mas de lo necesario. Te recomiendo que veas el tema de mapping by code. saludos. nelo 2013/1/21 Javier Osvaldo Chércoles <[email protected]>: > Roberto, primero mucho gusto, en segundo lugar, por lo que yo leí Flush(), > hace que todo lo que le queda pendiente de cerrar a NHibernate, se cierre, > es decir, si tenes un registro para actualizar, lo actualiza, aunque sea con > los mismos datos. Por experiencia propia, yo tenia mal mapeada una clase, y > cuando hacia un select lo hacia tomando un dato, cuando llegaba el momento > de cerra toda las transacciones abiertas veia que los datos que trajo en el > select, no eran "iguales" o por lo menos los tipos, entonces, tomaba parte > el AutoFlush() y comiteaba todo, lo que recargaba el servidor. > > Si para alguien dije un desacierto, corrijanme, pero fue mi vivencia. > > Saludos. > > Javier. > > El viernes, 19 de febrero de 2010 16:54:42 UTC-3, Roberto Ramírez escribió: >> >> Quizá parezca una pregunta tonta, pero, no quiero dejar de preguntar: >> >> ¿Cuál es la diferencia entre Session.Flush() y Session.Commit()? >> >> Gracias... >> >> -- >> Roberto Ramírez > > -- > Para escribir al Grupo, hágalo a esta dirección: > [email protected] > Para más, visite: http://groups.google.com/group/NHibernate-Hispano -- Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano
