2010-12-12 4 views
1

Actuellement, nous créons un seul EntityManager par demande dans notre application Web. Nous souhaitons créer une transaction au début de la demande et la fermer à la fin pour obtenir une prise en charge automatique des transactions tout au long de la demande.Question sur la concurrence avec les transactions jpa 1.0

Est-ce que quelqu'un a déjà essayé? et cela introduira-t-il des problèmes de concurrence ou devrions-nous simplement emballer tout notre code de mise à jour dans une transaction séparée?

note que nous utilisons JPA 1.0

+1

De quel serveur (spécifiquement, quelle version) cela fonctionne-t-il? Y a-t-il une raison pour laquelle vous ne pouvez pas simplement injecter le 'EntityManager' dans vos EJB en utilisant' @ PersistenceContext'? –

Répondre

1

Pour des applications simples, cela suffit (une transaction par demande). Mais pour les scénarios plus complexes, vous devrez utiliser des transactions à un niveau plus granulaire.

En principe, j'enveloppe toujours mes transactions de mise à jour si nécessaire.

De toute façon votre approche ne vous empêche pas d'ouvrir une nouvelle transaction au milieu de la demande si nécessaire. Donc c'est OK par moi.

Et quelque chose sur les problèmes de concurrence possibles ... Si vous pouvez prévoir des problèmes, adressez-les, sinon je ne m'inquiéterais pas trop à ce sujet. Restez simple et ne vous laissez pas entraîner par des optimisations prématurées

Questions connexes