OK, last post from me, this is what you need:

- A long-running conversation that is started when the form in 1) is rendered

- A Seam-managed persistence context with @In EntityManager (read the docs) 
that is bound to that conversation (automatically)

- The conversation should begin with FlushModeType.MANUAL, so that the 
persistence context does not write to the database until em.flush() is called

- All your screens and popups run inside the same long-running conversation 
(JSF POSTback propagates the conversation, for opening a new window etc. and 
propagation during GET use s:link or s:button)

- Use the @In EntityManager to load objects and queue objects for storing 
(unflushed)

- If you want to cancel the whole thing, end the conversation without flushing 
the persistence context

- If you want to commit the whole thing, call em.flush() in the request that 
also ends the conversation

Finally, this is _not_ trivial although there is probably no framework that 
makes this easier than Seam. For example, I did not even mention the word 
"transaction", because what the TransactionalSeamPhaseListener is doing is just 
fine.


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

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4043418
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to