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

Reply via email to