In the Struts2 Action rather than my service class?

> -----Original Message-----
> From: Maurizio Cucchiara [mailto:maurizio.cucchi...@gmail.com]
> Sent: Wednesday, March 09, 2011 4:20 PM
> To: Struts Users Mailing List
> Subject: Re: RE: Re : Re : ModelDriven & Hibernate Entities
> 
> Have you tried to put the transational annotation in the class
> declaration?
> 
> Maurizio Cucchiara
> 
> Il giorno 09/mar/2011 21.38, "CRANFORD, CHRIS"
> <chris.cranf...@setech.com>
> ha scritto:
> > I still think this is related to my @Transactional annotation maybe.
> >
> >> -----Original Message-----
> >> From: Dave Newton [mailto:davelnew...@gmail.com]
> >> Sent: Wednesday, March 09, 2011 2:16 PM
> >> To: Struts Users Mailing List
> >> Subject: Re: Re : Re : ModelDriven & Hibernate Entities
> >>
> >> Another reason OSiV filters can be tricky.
> >>
> >> Dave
> >>
> >> On Wed, Mar 9, 2011 at 2:04 PM, CRANFORD, CHRIS
> >> <chris.cranf...@setech.com> wrote:
> >> > Francois -
> >> >
> >> > I use the standard paramsPrepareParamsStack interceptor from
> Struts.
> >> >
> >> > All I have done on my end is wrap this interceptor stack with a
> few
> >> application specific interceptors that control things such as
> >> authentication required, auditing, and logging.  I stepped upon my
> >> issue one day when I had returned from lunch and my session had
> timed
> >> out.  I hit the SAVE button on a form and it redirected me to our
> login
> >> page.
> >> >
> >> > But prior to logging back in; I checked the database and noticed
> that
> >> the record was in fact persisted with the changes from the form.
> All I
> >> can gather is the following:
> >> >
> >> > 1. Request comes in for Struts
> >> > 2. Hibernate Session opened via OSIV
> >> > 3. Model is loaded from DB via prepare()
> >> > 4. Struts copies parameters into the model
> >> > 5. Validation/Interceptors fire
> >> > 6. Authentication Interceptor detects timed out session, returns
> >> LOGIN
> >> > 7. User presented with login page
> >> > 8. OSIV filter closes, changes from #4 persisted.
> >> >
> >> > I then created a simple test action where I load a persist entity
> >> from the DB in a ModelDriven action, I call the action passing
> >> parameters that are properties on the entity.  Then the execute()
> >> method does nothing more than return SUCCESS which maps to my
> >> /pages/done.jsp.  The changes are committed.
> >> >
> >> > I'd prefer that changes aren't committed unless I explicitly call
> to
> >> do so on the EntityManager; however I understand Hibernate/JPA's
> >> reasons behind why it works the way it does.
> >> >
> >> >
> >> >
> >> >> -----Original Message-----
> >> >> From: François Rouxel [mailto:rouxe...@yahoo.com]
> >> >> Sent: Wednesday, March 09, 2011 12:24 PM
> >> >> To: Struts Users Mailing List
> >> >> Subject: Re : Re : ModelDriven & Hibernate Entities
> >> >>
> >> >> Hi Chris,
> >> >> first,
> >> >> you might have another pb, because struts2 does not change your
> >> model
> >> >> if a
> >> >> validation failed. In may case, the model is not changed so not
> >> >> persisted. Do u
> >> >> use validation and workflow interceptor ?
> >> >> second,
> >> >> you are right about MVC pattern, but, just be aware that when you
> >> use
> >> >> OSIV
> >> >> pattern, hibernate call backend service when loading data...:-))
> so
> >> >> your JSP is
> >> >> not just a view in that case....
> >> >>
> >> >>
> >> >> I wrote my first mail thinking you wanna rollback after an
> exception
> >> >> occured.
> >> >> maybe it's gonna help others.
> >> >>
> >> >> fr/
> >> >>
> >> >>
> >> >>  ____________________________________________
> >> >> ____________________________________________
> >> >>
> >> >>
> >> >>
> >> >> ----- Message d'origine ----
> >> >> De : "CRANFORD, CHRIS" <chris.cranf...@setech.com>
> >> >> À : Struts Users Mailing List <user@struts.apache.org>
> >> >> Envoyé le : Mer 9 mars 2011, 13h 09min 33s
> >> >> Objet : RE: Re : ModelDriven & Hibernate Entities
> >> >>
> >> >> Francois -
> >> >>
> >> >> While that may work for you, I wouldn't place anything Hibernate
> or
> >> >> persistence
> >> >> related in my JSP pages at all.  In my mind, this breaks the
> entire
> >> >> reasoning
> >> >> behind MVC and the view simply there to render data.  If the view
> is
> >> >> doing
> >> >> anything beyond that, I have a design problem, but again that's
> my
> >> >> opinion.
> >> >>
> >> >> But what about when you use the INPUT result code in your
> execute()
> >> >> method.
> >> >>
> >> >> If I return the user to the INPUT method because maybe I'm not
> using
> >> >> the Struts
> >> >> validation framework and doing it myself in my execute() method
> or I
> >> >> have some
> >> >> complex conditions I must check for before I save the data.  In
> this
> >> >> case, by
> >> >> returning INPUT and setting some action field or error messages
> to
> >> be
> >> >> shown to
> >> >> the user, the error exception handler isn't fired, thus your
> >> rollback
> >> >> isn't
> >> >> fired either; leaving your entity persisted with likely dirty
> data.
> >> >>
> >> >> > -----Original Message-----
> >> >> > From: François Rouxel [mailto:rouxe...@yahoo.com]
> >> >> > Sent: Wednesday, March 09, 2011 11:43 AM
> >> >> > To: Struts Users Mailing List
> >> >> > Subject: Re : ModelDriven & Hibernate Entities
> >> >> >
> >> >> > same issue
> >> >> > this how  I fixed it : (the main idea is to redirect to a jsp
> if
> >> an
> >> >> > exception
> >> >> > occured, and the jsp rollback)
> >> >> >
> >> >> > create an error page error.jsp
> >> >> > <%@page
> import="com.rdvcentral.util.persistance.HibernateUtil"%>
> >> >> > <%@ page contentType="text/html;charset=UTF-8" language="java"
> %>
> >> >> > <%@ taglib prefix="s" uri="/struts-tags" %>
> >> >> > <%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
> >> >> >
> >> >> >
> >> >> > <%@page import="org.hibernate.Transaction"%>
> >> >> > <%@page import="org.apache.log4j.Logger"%>
> >> >> >
> >> >> > <s:property value="%{logError(exception)}"/>
> >> >> > <%
> >> >> >     Transaction tx = new
> >> >> >
> >> >>
> >>
> HibernateUtil().getSessionFactory().getCurrentSession().getTransaction(
> >> >> > );
> >> >> >     if (tx != null && tx.isActive()) {
> >> >> >         tx.rollback();
> >> >> >     }
> >> >> > %>
> >> >> >
> >> >> > In your struts mapping file :
> >> >> >
> >> >> >         <global-results>
> >> >> >             <result
> name="unhandledException">/error.jsp</result>
> >> >> >             </result>
> >> >> >         </global-results>
> >> >> >
> >> >> >         <global-exception-mappings>
> >> >> >             <exception-mapping exception="java.lang.Exception"
> >> >> >                 result="unhandledException" />
> >> >> >         </global-exception-mappings>
> >> >> >
> >> >> > hope it will help you
> >> >> >
> >> >> >
> >> >> >  ____________________________________________
> >> >> > ____________________________________________
> >> >> >
> >> >> >
> >> >> >
> >> >> > ----- Message d'origine ----
> >> >> > De : "CRANFORD, CHRIS" <chris.cranf...@setech.com>
> >> >> > À : Struts Users Mailing List <user@struts.apache.org>
> >> >> > Envoyé le : Mer 9 mars 2011, 12h 34min 32s
> >> >> > Objet : ModelDriven & Hibernate Entities
> >> >> >
> >> >> > I had started down a path of using the ModelDriven interface
> from
> >> >> > Struts
> >> >> > because I find it really helps maintain a class action class
> >> without
> >> >> > large numbers of get/set methods for screens that contain a lot
> of
> >> >> form
> >> >> > fields.
> >> >> >
> >> >> > However, I am finding at least with how I have attempted to
> >> approach
> >> >> > ModelDriven to have several drawbacks.  For example, by using
> the
> >> >> OSIV
> >> >> > (Open Session In View) filter, I am finding that when Struts
> sets
> >> the
> >> >> > properties on the entity and afterward if an exception is
> thrown,
> >> >> > caught
> >> >> > and handled and doesn't trigger Hibernate to actually
> "rollback";
> >> the
> >> >> > changes are persisted which leaves my entity in a dirty
> >> inconsistent
> >> >> > state.
> >> >> >
> >> >> > How have others solved this by using your entity domain POJOs
> in
> >> your
> >> >> > view?
> >> >> >
> >> >> > Do you use them detached from the session so that you
> explicitly
> >> have
> >> >> > to
> >> >> > merge them to the session to be persisted?  If so, how do you
> deal
> >> >> with
> >> >> > multiple lazy loaded collections in your entity?
> >> >> >
> >> >> > Or would using DTO objects from my service layer a better
> >> alternative
> >> >> > to
> >> >> > insure that no data is actually persisted to the database that
> >> >> > shouldn't
> >> >> > be?
> >> >> >
> >> >> >
> >> >> > ---------------------------------------------------------------
> ---
> >> ---
> >> >> > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
> >> >> > For additional commands, e-mail: user-h...@struts.apache.org
> >> >> >
> >> >> >
> >> >> >
> >> >> >
> >> >> > ---------------------------------------------------------------
> ---
> >> ---
> >> >> > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
> >> >> > For additional commands, e-mail: user-h...@struts.apache.org
> >> >> >
> >> >>
> >> >>
> >> >>
> >> >> -----------------------------------------------------------------
> ---
> >> -
> >> >> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
> >> >> For additional commands, e-mail: user-h...@struts.apache.org
> >> >>
> >> >>
> >> >>
> >> >>
> >> >> -----------------------------------------------------------------
> ---
> >> -
> >> >> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
> >> >> For additional commands, e-mail: user-h...@struts.apache.org
> >> >>
> >> >
> >> >
> >> >
> >> > ------------------------------------------------------------------
> ---
> >> > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
> >> > For additional commands, e-mail: user-h...@struts.apache.org
> >> >
> >> >
> >>
> >> --------------------------------------------------------------------
> -
> >> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
> >> For additional commands, e-mail: user-h...@struts.apache.org
> >>
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
> > For additional commands, e-mail: user-h...@struts.apache.org
> >


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org

Reply via email to