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" <[email protected]>
To
"Struts Users Mailing List" <[email protected]>
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]