[jboss-user] [JBoss Seam] - Re: When to use @PersistenceContext vrs @In EntityManager (S
kasim
do-not-reply at jboss.com
Thu Feb 7 11:45:59 EST 2008
"msystems" wrote : Use @PersistenceContext if you are using EJB3 and if you need a new transaction (@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) ) - Seam ref:
|
| anonymous wrote :
| | If you are using EJB3 and mark your class or method @TransactionAttribute(REQUIRES_NEW) then the trans-
| | action and persistence context shouldn't be propagated to method calls on this object. However as the Seam-
| | managed persistence context is propagated to any component within the conversation, it will be propagated to
| | methods marked REQUIRES_NEW. Therefore, if you mark a method REQUIRES_NEW then you should access the en-
| | tity manager using @PersistenceContext.
| |
|
| otherwise use SMPC.
|
What you are saying at the top part is true.
However i don't believe the doco is saying use SMPC all the time.
Take a look at the first paragraph of the section. It basically refers to if you are using the component outside of a Java EE5 environment or if you have many loosly coupled components. Which as long as they are all SB the PersisetnceCOntext should transfer. However the doco is 100% right if you are going to have a mix of SB and POJOS .... then yeah doing the EntityManager injection is the only way to go.
So you can stick with the @PersistenceContext in most situations. Its going to be a situation where you are wanting to transact against non-EJB components you will want to use the @IN EntityManger.
Of course that being said i am not sure the harm it would cause using the @In EntityManager more often.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4127483#4127483
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4127483
More information about the jboss-user
mailing list