"gavin.king(a)jboss.com" wrote : There is one problem with performing validation
during the action phase: if you are using an extended persistence context, you would
prefer to do validation before applying values onto the model object. But by the time we
get to the action method, the values have already been applied. It is then difficult to
roll back the change to prevent them being written to the database.
|
| However, there is a solution: if you use an extended persistence context with manual
flushing, you are fine. There is better support for this in CVS.
Here's another way, which works already now without having to wait for Seam 1.1 or
using the CVS version;).
|
| import javax.ejb.SessionContext;
|
| @Resource
| SessionContext ejbCtx;
|
| public String actionMethod() {
| ...
| if (validationFailed)
| ejbCtx.setRollbackOnly();
| ...
| }
By the way: To prevent the Extended Persistence Context from auto-flushing where you maybe
do not expect it, annotate your class with
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED) so that no storing will be
performed. And to make your save-method work again, annotate it with
@TransactionAttribute(TransactionAttributeType.REQUIRED)
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3970438#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...