OSIV is never suppose to flush/commit?
Gabriel Belingueres-2 wrote: > > I suspect that in case A) you are just creating a new POJO in memory > (never linked to the Hibernate's Session), that's why the > OpenSessionInViewFilter does nothing. > > In case B), you are loading into the Session the POJO in the prepare > method. When submit the form, it is loaded again before action's > execute() method, then the ParametersInterceptor updates the POJO > field, and at the end the OpenSessionInViewFilter commits the Session > with the POJO's fields modified, so Hibernate performs the update. > > 2008/9/24 Jack_Ryde <[EMAIL PROTECTED]>: >> >> Keyword: struts2 preparable, spring OpenSessionInViewFilter, hibernate >> transaction management. >> >> Background: >> >> We use OpenSessionInViewFilter in our web xml to enable lazy loading in >> web >> views. >> >> The struts action class provides a basic function in adding, updating and >> deleting data entity as a controller. >> >> Our form fields reference the entity object and its properties with a >> valid >> OGNL expression... >> like <s:textfield name="organisation.phoneNumber"></s:textfield> >> >> The submitform's action does nothing to D.B. >> >> Problem: >> >> Case A: >> >> The struts action does not implement Preparable interface and we use some >> private method to initialize the data used . >> >> The jsp uses the entity expression directly. <s:textfield >> name="organisation.phoneNumber"></s:textfield> >> >> As a result, whenever you make any change in the jsp for this entity and >> submit the form, it does not go to the D.B. >> >> Which is good because this is exactly what we want as "Open Session in >> View", which is read-only. >> >> >> >> Case B: >> >> The struts action does implement Preparable interface and in the >> implementation, we retrieve the data from database and populate its >> original >> value. >> >> And the jsp uses the entity expression directly. <s:textfield >> name="organisation.phoneNumber"></s:textfield> >> >> As a result, whenever you make any change in the jsp for this entity and >> submit the form, it changes the D.B. >> >> My question is the case B: >> >> How does "Preparable" influence hibernate transaction management? Anyone >> has any idea? >> >> >> I guess it is related to the struts 2 Interceptor, which does have some >> influence to the spring, which then influences the hibernate transaction >> control. >> >> I post the problem in struts forum, not spring or hibernate forum, >> because >> if I do not use "Preparable", everything works as expected. >> >> >> cheers >> Jack >> >> >> >> -- >> View this message in context: >> http://www.nabble.com/%22Preparable%22-influence-hibernate-transaction-management-when-using-%22OpenSessionInViewFilter%22-tp19660675p19660675.html >> Sent from the Struts - User mailing list archive at Nabble.com. >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > -- View this message in context: http://www.nabble.com/%22Preparable%22-influence-hibernate-transaction-management-when-using-%22OpenSessionInViewFilter%22-tp19660675p19709335.html Sent from the Struts - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]