Hola Martín, te hago una consulta acerca de "objeto cliente que es
compartido por varias páginas":

si vos modificar los datos del objeto cliente en uno de los tabs (pero
aun NO lo guardas en la db)
1. ¿querés que el otro tab del explorador vea los cambios?
2. ¿querés que otra ventana del explorador vea los datos?
3. ¿querés que otros usuarios vean los cambios?

Si la respuesta a todas estas preguntas es NO, lo mejor sería usar
distintas sessions y cargar el objeto en cada una.

Si la respuesta a 1. es si y a 3. es no, creo que deberías usar la
misma session en ambas páginas.

¿cual es tu "unidad de trabajo"? ¿cual es tu "transacción de negocio"?

podes encontrar algo de info sobre unit of work en:
http://martinfowler.com/eaaCatalog/unitOfWork.html
http://fabiomaulo.blogspot.com/2008/12/conversation-per-business-transaction.html
http://www.hibernate.org/42.html

Saludos.
Nelo.

2009/1/12 Martin Palatnik <[email protected]>:
> Perdón se mando. En la aplicación hay un objeto cliente que es compartido
> por varias páginas. Tengo una conversación para la actualización de dicho
> cliente. El asuntpo es que esta termina cuando se actualizo el cliente y
> alli empieza otra. El problema es que si el cliente esta cargado y abren en
> dos tab la misma página tengo que poder cargarle nuevamente el cliente a la
> misma página. Como tengo el cliente en sesión pense que era interesante
> asociarselo a la sesión de la nueva página pero como ya esta asociado a la
> sesión de la conversación entonxces tira la exzcepción lo cual es totalmente
> lógico. Estoy al tanto que no puedo tener un objeto en dos sesiones, mi
> pregunta va mas por el lado de cual es la mejor alternativa en este caso y
> seguir usando burrow con conversaciones.
>
> Muchas gracias. Martín.
>
> 2009/1/12 Martin Palatnik <[email protected]>
>>
>> Claro el problema es el siguiente. En la aplicación hay un objeto cliente
>>
>> 2009/1/12 Diego Jancic <[email protected]>
>>>
>>> Hola,
>>>
>>> No podes, ni deberias poder, asociar el mismo objeto a 2 sesiones. Si vos
>>> queres solo leer el objeto, podes leerlo con cualquier session y despues
>>> hacerle un Evict, o usar un StatelessSession para obtenerlo; de esta forma
>>> el objeto no va a quedar asociado a la session y no vas a tener problema.
>>> Junto con eso también vas a estar eliminando mucha inteligencia asociada,
>>> como caches, asi que tene cuidado.
>>>
>>> Si tu idea es que el objeto se pueda actualizar mediante 2 sessions, las
>>> 2 sesiones no deberían compartir la misma instancia.
>>>
>>>
>>>
>>> Saludso
>>>
>>>
>>>
>>> From: [email protected]
>>> [mailto:[email protected]] On Behalf Of Martin Palatnik
>>> Sent: Monday, January 12, 2009 18:52
>>> To: [email protected]
>>> Subject: [NHibernate-Hispano] Burrow, conversaciones y sesiones
>>>
>>>
>>>
>>> Disculpen que sea reiterativo, ya postee antes el problema pero espero si
>>> alguien puede ayudarme nuevamente.
>>>
>>> Tengo el siguiente problema al utilizar burrow, necesito que dos
>>> conversaciones trabajen con el mismo objeto. Al guardar el objeto en la
>>> sesión http e intentar asociarlo (lock) en otra sesión de nh recibo una
>>> excepción "illegal atempt to associate a collection with two open sessions".
>>> Una posible solución es mantener en sesión http unicamente el id del objeto
>>> y hacer load del objeto implementando cache para no ir tanto a la bd. Se les
>>> ocurre alguna alternativa mejor?
>>>
>>>
>>>
>>
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano
-~----------~----~----~----~------~----~------~--~---

Responder a