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