[jboss-user] [JBoss Seam] - Do I need to use FlushMode.MANUAL for this??

lindsayh do-not-reply at jboss.com
Thu Apr 26 12:11:32 EDT 2007


Hello,

I have a form where a user can modify their details, including their username.  So, when user saves form, I want to check that the username is unique in the database.  Here's the code I use to do this (where casUser is the entity that's backing my form):


  |         Query usernameQuery = casDatabase
  |                     .createQuery("select c from CasUser c where upper(username) = upper(:username)");
  |         usernameQuery.setParameter("username", casUser.getUsername());
  |         List<CasUser> usernameResults = usernameQuery.getResultList();
  |         if (usernameResults.size() > 0 && !usernameResults.get(0).equals(casUser))
  |         {        
  |             facesMessages.addToControl("username",
  |                     "Another user exists with this username");
  |             return false;
  |         }
  |         return true;
  | 

Unfortunately, just before the query is executed, the entity I'm checking is automatically updated in the database, causing a UniqueConstraintViolation.  This is precisely what i want to avoid by doing the check!

I can get around this by setting the conversation's flushMode to MANUAL.  But I don't really like to do this.  I like to stick with the defaults for as long as I possibly can!

Is this the only way to stop it updating the database before I've done my validation checks??  

Many thanks.

Lindsay

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4041073#4041073

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4041073



More information about the jboss-user mailing list