Con "Se trata de una aplicacion q van interactuando (con la misma sesión)", ¿quién va interactuando? ¿el usuario? ¿es una aplicación web? ¿cuál es el ciclo de vida de la session de nh?
saludos. nelo 2012/2/11 BlackCid <[email protected]>: > A ver el tema es el siguiente, primero hago el query para saber si > esta el objeto, si no está hago new de un objeto, y le hago un save. > El tema es que tal vez luego, y solo tal vez, lo necesitaré. Se trata > de una aplicacion q van interactuando (con la misma sesión), asi que > no puedo predecir el futuro. > > De momento lo que he hecho es hacer una lista de los ids creados, no > va del todo mal pero bueno si se pudiese usar nhibernate directamente, > código q me ahorro. > > On 10 feb, 20:08, "[email protected]" <[email protected]> > wrote: >> Si, hasta donde recuerdo, si accedes a un objeto con el Get y lo tiene >> en cache te trae ese (ya sea por el Save o porque lo consultaste antes >> en esa session). El tema no es que no lo encuentre, sino que no sabe >> si el objeto que está en cache cumple con las condiciones de la query. >> >> Si nos dieses un poco mas de contexto de lo que estás queriendo hacer, >> quizás alguien tenga alguna idea de como solucionarlo. >> >> saludos. >> nelo. >> >> 2012/2/10 BlackCid <[email protected]>: >> >> >> >> > Entonces la respuesta es No se puede. ¿No? >> > De todas formas yo creo que es más por la cache de query, porque si >> > hago un get, (que antes no habia hecho y por tanto no debe estar en >> > caché), de su id lo pilla :-/, así que algo me dice que es porque >> > primero ejecuto al query, luego hago el save y luego la vuelvo a >> > ejecutar. Pero intento invalidar la query caché y no parece >> > funcionar. >> > ¿Que posibilidades tengo para invalidar la caché de query? A ver si >> > estoy intentándolo bien... >> >> > Aunque a lo mejor tienes razón y ejecuta la query contra la base de >> > datos pero el get si lo coja de su memoria. :S >> >> > On 10 feb, 04:02, "[email protected]" <[email protected]> >> > wrote: >> >> Seguramente porque tenés el FlushMode en Never o en Commit y la query >> >> se ejecuta contra la DB... hasta donde recuerdo, NHibernate no tiene >> >> un motor T-SQL para los objetos en RAM. >> >> >> Una opción sería que pases a FlushMode Auto y de esta forma NHibernate >> >> hará automáticamente el Flush cuando detecte que el resultado de una >> >> query se puede ver afectado por objetos cuyo estado todavía no fue >> >> reflejado en la DB. >> >> >> Si vas por el FlushMode en Auto, debés manejar correctamente las >> >> transacciones y no es compatible con CpBT ni con session que duren mas >> >> que un request (pensando en una aplicación web). >> >> >> saludos. >> >> nelo >> >> >> 2012/2/9 BlackCid <[email protected]>: >> >> >> > Ya, yo estoy hablando desde la misma sesión, pero resulta que hago un >> >> > save de dicha entidad, y luego cuando hago una query no me sale. >> >> >> > On 8 feb, 17:14, "[email protected]" <[email protected]> >> >> > wrote: >> >> >> Desde la misma session SI, desde otra NO. El flush es justamente el >> >> >> "pasaje" de la session a la db. (también influye como manejes la >> >> >> transacción). >> >> >> >> saludos. >> >> >> nelo >> >> >> >> 2012/2/8 BlackCid <[email protected]>: >> >> >> >> > Resulta qe en un momento dado creo una nueva entrada, pero hasta que >> >> >> > no se hace un flush no puedo obtenerla, ¿hay alguna forma de >> >> >> > recuperarla antes de hacer un flush? >> >> >> >> > -- >> >> >> > Para escribir al Grupo, hágalo a esta dirección: >> >> >> > [email protected] >> >> >> > Para más, >> >> >> > visite:http://groups.google.com/group/NHibernate-Hispano-Ocultartexto >> >> >> > de la cita - >> >> >> >> - Mostrar texto de la cita - >> >> >> > -- >> >> > 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- >> > Ocultar texto de la cita - >> >> - Mostrar texto de la cita - > > -- > 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
