Suppose a field has a validator, and the field is made invalid (age < 0).  When flushing, the validator runs, and throws an exception.  The exception handling section (<http://www.hibernate.org/hib_docs/v3/reference/en/html_single/#transactions-demarcation-exceptions>) states that if any method throws an exception, the session must be closed.

 

So, what to do if session-per-conversation is used?  If hibernate validation is used, then flush of invalid data corrupts the session – the application then needs to ask the user to start over, or else build complex recovery logic (new session, copy data to new session) - effectively reducing session-per-conversation to session-per-transaction, since the application needs to be able to replay transactions that fail due to validation.

 

How does hibernate validation interact with extended sessions?

 

-Justin

office 8-383-6725, 212-272-6725; cell 917-861-6042