Hi all,

I know this is a much-asked topic/question, but it would be cool if someone 
takes the time to explain a thing or two to me. Don't think I'm lazy; I've been 
reading up on this all day, I just need some clarification ;-)
I also hope this is the right forum to ask, since it's pretty much 
seam-specific, so please excuse me if it's not.

I have this very well documented scenario: a user clicks something he wants to 
edit, changes some things, and sends the changes back to the DB (the "multipage 
wizard pattern").

I have the following installed: a stateful session bean that keeps track of the 
object that is to be edited, an persistence context, a method that init's the 
edit-session and one that writes the changes to the db.
I begin a conversation in the init() method and load the selected object into a 
variable of the SSB. The conversation is ended in the update() method.

Now my questions:

0. If I inject (@In) my EntityManager in Seam, it holds an extended persistence 
context, right?

1. If I call merge() or not in the update() method, it doesn't make any 
difference, the changes are always written to the DB. Why is that?

2. I use seam-validation that checks my data, but when something goes wrong in 
the update() method, a rollbackException is thrown, but my changed data is 
still written to the DB. How come?

3. If I would like to solve the issue in question #2, if 
@Begin(flushMode=MANUAL) the only solution? If you have an answer here, please 
elaborate regarding @TransactionAttribute and @Rollback, because this is all 
but clear to me. For instance, why doesn't my @Rollback on the update() method 
work if something goes wrong in that method?

4. Is this solution: 
http://docs.jboss.org/ejb3/app-server/tutorial/extended_pc/extended.html the 
same as @Begin(flushMode=MANUAL)?

5. Is it normal I can't use <s:convertEntity /> if I use @PersistenceContext 
instead of an injected (@In) entity manager?

6. Is there a way to specify flushMode=MANUAL in the <begin-conversation> tag 
of pages.xml?

7. A bit of a general question: in my scenario (without the manual flushmode), 
where are the transactions started/ended, and where will throwing runtime 
exceptinos do any rollback on the changed data?

8. If I would like to post my findings of today in a wiki, what's the best one 
I can choose?

I hope I can help others out with my questions too, because this is supposed to 
be general knowledge, but it's hard to get your thoughts around these concepts 
if one comes from a non-ejb3 environment, directly to seam.

kudos to those who find the time and helpfulness to answer my questions.

b.

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

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

Reply via email to