Hi Werner, I see. Regarding to your comments about Shale, do you mean that Shale will allow me to have a reference to every object that is prsented in the DataModel, so for example I will be able to reattach it to the new Hibernate session using Hibernate.lock(object, LockMode.NONE)?
Thanks for your comments. 2005/6/20, Werner Punz <[EMAIL PROTECTED]>: > Enrique Medina wrote: > > Hi, > > > > Maybe this is not the most adequate forum to post this question, but I > > know many of you are using MyFaces together with Spring & Hibernate, > > so it would be great it you give me some comments. > > > > The problem I have comes with Lazy collections in my objects. Assuming > > you know how to use Hibernate & Spring, the problem comes when I try > > to paginate my DataTable using the DataScroller, because the > > OpenSessionInViewFilter pattern establishes the session Hibernate in > > the initial query (the one that shows the first page of the > > DataTable). So, when the following page is needed, as MyFaces executes > > a new request, the session binded by the OpenSessionInViewFilter for > > this new request, is not obviously the same as the session previously > > established at the first request. > > > > Finally, I always get a Lazy initialization exception from Hibernate, > > as you surely have imagined... > > > > So my question is very simple: > > > > How do you manage objects with lazy collections being shown in > > different request with respect to the OpenSessionInViewFilter pattern? > > > Simple answer, to a relatively deep question. You cannot. To be more > precise, there is a huge flaw in the access pattern of the Datamodel, > which is somewhat fixed in shale (Clanahan, the core maintainer of Shale > pointed me towards it), and that is the way you can get access > boundaries in the Datamodel, which is somewhat non existent. > > But back to your problem which has more to do with Hibernate than with > the half broken Datamodel. > The easiest way to deal with your problem is relatively simple, avoid > the lazy loading for the parts you want to display in the data table > and only use it for the parts you dont want to display, to avoid > excessive data loading. > You can do that either by tinkering with the Hibernate config params, or > by accessing the lazily loaded parts during session time once. > Depending on your data structures one approach or the other might > be more efficient. > >

