Ok, so the session is not 100% safe for attaching detaching hibernate stuff. If there is a better place to store something like a user object i would love to here about it.
Maurice On 7/31/06, Johan Compagner <[EMAIL PROTECTED]> wrote: > yes but with igors example it is possible > that the session is used over multiply request we do have a lock > But that lock doesn't lock globally over everything. > So it is possible that it gets detached from under your nose. But that is > not a problem > But it is also possible that you get a user loaded by another thread == > hibernate session. > Session.detach() is not called in a sync block... > > johan > > > > On 7/31/06, Maurice Marrink <[EMAIL PROTECTED]> wrote: > > > Glad to see it was just a misunderstanding. I was afraid you guys were > gonna tell me the world isn't flat ;) > > Maurice > > On 7/31/06, Igor Vaynberg <[EMAIL PROTECTED] > wrote: > > i wasnt suggesting setting the user on request cycle, i was suggesting > > keeping the id in session and letting requestcycle hold the cache for the > > request. > > > > i didnt realize websession has attach/detach, so this can be made simpler > > > > MySession extends WebSession { > > private long userid; > > private transient User user; > > > > setUser(User u) { > > userid=u.getid(); > > user=u; > > } > > > > getUser() { > > if (user==null) { > > user=loaduserbyid(userid); > > } > > return user; > > } > > > > detach() { > > user=null; > > > > } > > > > -Igor > > > > > > On 7/31/06, Maurice Marrink <[EMAIL PROTECTED]> wrote: > > > > store is detached. second request comes in and it is dealing with > stale > > data > > > > unless you reload the user object. > > > correct that is why you should use an imodel or come up with your own > > > attach detach strategy > > > > > > > also storing imodel in session wont work because session doesnt have > an > > > > imodel slot so who is going to be responsible for detaching that model > > at > > > > the end of request? > > > session has an onattach and ondetach method you can use. > > > > > > Also the way i understand how the whole requestcycle stuff happens > > > (and i know you guys know way more about that then me) is that a new > > > requestcycleobject is created on every request by a factory so how is > > > the current user supposed to get set on the requestcycle? > > > > > > Don't get me wrong i am not criticizing you guys, i am just curious as > > > to how the internals of wicket operate. > > > > > > Maurice > > > > > > On 7/31/06, Igor Vaynberg < [EMAIL PROTECTED]> wrote: > > > > but we are talking about caching here. if you store the instance of > the > > user > > > > you loaded in session that is fine for the request that loaded it. but > > what > > > > happens after that request ends? the session is closed, the instance > you > > > > store is detached. second request comes in and it is dealing with > stale > > data > > > > unless you reload the user object. > > > > > > > > also storing imodel in session wont work because session doesnt have > an > > > > imodel slot so who is going to be responsible for detaching that model > > at > > > > the end of request? > > > > > > > > -Igor > > > > > > > > > > > > > > > > On 7/31/06, Maurice Marrink < [EMAIL PROTECTED]> wrote: > > > > > > > > > true, but shouldn't the lock on the session prevent that in like 95% > > > > of all the cases? > > > > > > > > Maurice > > > > > > > > On 7/31/06, Johan Compagner <[EMAIL PROTECTED]> wrote: > > > > > A session can be used by multiply threads/request > > > > > So it will be detached by those when they are finished. > > > > > So another request can be busy with it while another calls detach on > > it. > > > > > > > > > > johan > > > > > > > > > > > > > > > > > > > > On 7/31/06, Maurice Marrink < [EMAIL PROTECTED]> wrote: > > > > > > >i wouldn't recommend doing this in session because user entity > will > > > > > > become detached, i >would instead do it in the requestcycle so > the > > > > > > user is loaded once per request > > > > > > Yeah are you sure about this Igor? because we are also attaching > our > > > > > > user object (hibernate object) to our session, lazy loading it > > > > > > whenever needed. And we have not noticed it getting detached > before > > > > > > the end of the request. Mats i guess this also answers your > question > > > > > > about if it is possible to put an imodel in the session. however > if > > > > > > you are really concerned about the db access every time you could > > > > > > always store the team id in the session. > > > > > > > > > > > > Maurice > > > > > > > > > > > > On 7/31/06, Mats Norén < [EMAIL PROTECTED] > wrote: > > > > > > > On 7/31/06, Igor Vaynberg <[EMAIL PROTECTED]> wrote: > > > > > > > > i wouldnt recommend doint this in session because user entity > > will > > > > > become > > > > > > > > detached, i would instead do it in the requestcycle so the > user > > is > > > > > loaded > > > > > > > > once per request > > > > > > > > > > > > > > It is? I've used a User-object in session and I haven't noticed > > that > > > > > > > it gets detached.... I guess I'll have to look into to that. > > > > > > > > > > > > > > Can I still have a getUser() method in Session that in turn uses > > the > > > > > code below? > > > > > > > > > > > > > > I think I saw an example (could have been in databinder) where a > > > > > > > IModel was stored in session. Is that an alternative? > > > > > > > > > > > > > > > > ((MyRequestCycle)RequestCycle.get()).getUser(); > > > > > > > > > > > > > > > > MyRequestCycle { > > > > > > > > private transient User user; > > > > > > > > > > > > > > > > getuser() { if (user==null) { user=loaduser( > > > > > session.get().getuserid()); } > > > > > > > > onendrequest() { user=null; } > > > > > > > > } > > > > > > > > > > > > > > > > -Igor > > > > > > > > > > > > > > > > > > > > > > /Mats > > > > > > > > > > > > > > > > > > > > > > > > > > ------------------------------------------------------------------------- > > > > > > > Take Surveys. Earn Cash. Influence the Future of IT > > > > > > > Join SourceForge.net 's Techsay panel and you'll get the chance > to > > > > share > > > > > your > > > > > > > opinions on IT & business topics through brief surveys -- and > earn > > > > cash > > > > > > > > > > > > > > > > > > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > > > > > > _______________________________________________ > > > > > > > Wicket-user mailing list > > > > > > > Wicket-user@lists.sourceforge.net > > > > > > > > > > > > > > https://lists.sourceforge.net/lists/listinfo/wicket-user > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ------------------------------------------------------------------------- > > > > > > Take Surveys. Earn Cash. Influence the Future of IT > > > > > > Join SourceForge.net's Techsay panel and you'll get the chance to > > share > > > > > your > > > > > > opinions on IT & business topics through brief surveys -- and earn > > cash > > > > > > > > > > > > > > > > > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > > > > > _______________________________________________ > > > > > > Wicket-user mailing list > > > > > > Wicket-user@lists.sourceforge.net > > > > > > > > > > > > https://lists.sourceforge.net/lists/listinfo/wicket-user > > > > > > > > > > > > > > > > > > > > > > > > > > > > ------------------------------------------------------------------------- > > > > > Take Surveys. Earn Cash. Influence the Future of IT > > > > > Join SourceForge.net's Techsay panel and you'll get the chance to > > share > > > > your > > > > > opinions on IT & business topics through brief surveys -- and earn > > cash > > > > > > > > > > > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > > > > > > > > > _______________________________________________ > > > > > Wicket-user mailing list > > > > > Wicket-user@lists.sourceforge.net > > > > > > > https://lists.sourceforge.net/lists/listinfo/wicket-user > > > > > > > > > > > > > > > > > > > > > > > > > > ------------------------------------------------------------------------- > > > > > > > > Take Surveys. Earn Cash. Influence the Future of IT > > > > Join SourceForge.net's Techsay panel and you'll get the chance to > share > > your > > > > opinions on IT & business topics through brief surveys -- and earn > cash > > > > > > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > > > _______________________________________________ > > > > Wicket-user mailing list > > > > Wicket-user@lists.sourceforge.net > > > > > > https://lists.sourceforge.net/lists/listinfo/wicket-user > > > > > > > > > > > > > > > ------------------------------------------------------------------------- > > > > Take Surveys. Earn Cash. Influence the Future of IT > > > > Join SourceForge.net's Techsay panel and you'll get the chance to > share > > your > > > > opinions on IT & business topics through brief surveys -- and earn > cash > > > > > > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > > > > > > > _______________________________________________ > > > > Wicket-user mailing list > > > > Wicket-user@lists.sourceforge.net > > > > > > https://lists.sourceforge.net/lists/listinfo/wicket-user > > > > > > > > > > > > > > > > > > > > > ------------------------------------------------------------------------- > > > Take Surveys. Earn Cash. Influence the Future of IT > > > Join SourceForge.net's Techsay panel and you'll get the chance to share > > your > > > opinions on IT & business topics through brief surveys -- and earn cash > > > > > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > > _______________________________________________ > > > Wicket-user mailing list > > > Wicket-user@lists.sourceforge.net > > > > https://lists.sourceforge.net/lists/listinfo/wicket-user > > > > > > > > > > ------------------------------------------------------------------------- > > Take Surveys. Earn Cash. Influence the Future of IT > > Join SourceForge.net's Techsay panel and you'll get the chance to share > your > > opinions on IT & business topics through brief surveys -- and earn cash > > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > > > _______________________________________________ > > Wicket-user mailing list > > Wicket-user@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/wicket-user > > > > > > > > ------------------------------------------------------------------------- > > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys -- and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Wicket-user mailing list > Wicket-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wicket-user > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys -- and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > _______________________________________________ > Wicket-user mailing list > Wicket-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wicket-user > > > ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user