Seam conseille d'utiliser un étendu contexte dans un Stateful Session, afin d'avoir une persistance gérée par Seam.Procédures de transactions gérées par couture
Je ne sais pas si les conseils ci-dessus ont des implications sur la façon dont nous voulons avoir des transactions gérées par Seam. C'est parce que notre architecture est différente. Nous avons le contexte de persistance suivante dans un Stateless EJB:
@Stateless
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public class CrudServiceBean implements CrudService {
@PersistenceContext(type = PersistenceContextType.TRANSACTION)
private EntityManager em;
...
}
Nos OTI invoquent les CrudServiceBean ci-dessus sont Apatrides (EJBs certains d'entre eux sont également des composants Seam) avec @TransactionAttribute (TransactionAttributeType.REQUIRED). Ainsi, nos transactions sont traitées par le conteneur (WebLogic) et non Seam.
Cependant, nous avons maintenant besoin de satisfaire le scénario suivant: Nous devons avoir une des méthodes composant Seam-frontal (non EJB) invoquer plusieurs DAO (EJB) et envelopper tous dans une seule transaction. Si je comprends bien, nous devons avoir des transactions gérées par Seam. Peut-on avoir des transactions gérées par Seam comme dans le scénario que j'ai décrit, sans avoir de contexte de persistance géré par Seam? Ou sont les deux hors de propos?
J'essaie simplement de comprendre ici. Cela signifie-t-il que si j'ai des composants de couture non-EJB, la couture ne peut pas gérer la transaction et que je dois suivre un modèle similaire décrit ici? – Arash