Only difference is that I don't use model driven. Is there any setting to tell hibernate to flush the session when closed or it does that by default?
musachy On 10/1/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > Yes, musachy. I do something very similar. Here is my prepare() method: > > public void prepare() throws Exception { > if( this.id==0 ) { > this.entity = new Entity(); > } else { > this.entity = this.entityDao.findById(this.id); > } > } > > Here is the (obvious) getModel(): > > public Object getModel() { > return this.entity; > } > > Here is the update, "execute()" method that is called upon form > submission: > > @Validations( > requiredStrings = > [EMAIL PROTECTED](fieldName = "model.name", > message = "You must enter a title.")} > ) > public String update() { > if( this.id==0 ) { > this.entityDao.create(this.entity); > } else { > this.entity.update(this.entity); > } > return SUCCESS; > } > > So when a user enters a blank "model.name" field, this.entity.name > property gets set to null, the update() method never is called, but > Hibernate tries to write the update to the database when > OpenEntityManagerInViewFilter closes the EntityManager: > > Here is the relevant code from OpenEntityManagerInViewFilter > > protected void doFilterInternal( > HttpServletRequest request, HttpServletResponse > response, FilterChain filterChain) > throws ServletException, IOException { > > ... > > try { > filterChain.doFilter(request, response); > } > > finally { > if (!participate) { > EntityManagerHolder emHolder = > (EntityManagerHolder) > TransactionSynchronizationManager.unbindResource(emf); > emHolder.getEntityManager().close(); > } > } > } > > Jon French > Programmer > ASRC Management Services > ECOS Development Team > [EMAIL PROTECTED] > 970-226-9290 > > Fort Collins Science Center > US Geological Survey > 2150 Centre Ave, Building C > Fort Collins, CO 80526-8116 > > > > "Musachy Barroso" <[EMAIL PROTECTED]> > 10/01/2007 05:10 PM > Please respond to > "Struts Users Mailing List" <user@struts.apache.org> > > > To > "Struts Users Mailing List" <user@struts.apache.org> > cc > > Subject > Re: ModelDriven CRUD validation failure still causes JPA update > > > > > > > I only use the beanutils.copy solution on a few places, on the other > cases I always load the object model on the prepare() method if the > "id" field is set (editing), and then call update or create on the > entity manager in my action method. I never got that problem so I'm > wondering what is different. (I use JPA on top of hibernate) > > musachy > > On 10/1/07, Dave Newton <[EMAIL PROTECTED]> wrote: > > --- [EMAIL PROTECTED] wrote: > > > That's an interesting idea Dave. I'm using the > > > paramsPrepareStack. It'll take some investigation to > > > > > see if that would fix the issue. > > > > Shouldn't take much; it might be as simple as adding a > > validate/defaultWorkFlow up towards the top (although > > I might try just adding new ones rather than removing > > the existing ones). > > > > > Fort Collins Science Center > > > US Geological Survey > > > 2150 Centre Ave, Building C > > > > I used to live up Poudre River Canyon (Poudre Park); I > > sure miss the climbing out there :( > > > > d. > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > -- > "Hey you! Would you help me to carry the stone?" Pink Floyd > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > -- "Hey you! Would you help me to carry the stone?" Pink Floyd --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]