persistence.xml de transaction différents attributs de type
Dans le persistence.xml JPA fichier de configuration, vous pouvez avoir une ligne comme:
<persistence-unit name="com.nz_war_1.0-SNAPSHOTPU" transaction-type="JTA">
ou parfois:
<persistence-unit name="com.nz_war_1.0-SNAPSHOTPU" transaction-type=”RESOURCE_LOCAL”>
Ma question est:
Quelle est la différence entre transaction-type="JTA"
et transaction-type=”RESOURCE_LOCAL”
?
J'ai aussi remarqué que certains persistence.xml les fichiers avec l'opération-type manquant. Est-il correct?
Vous devez vous connecter pour publier un commentaire.
Par défaut
Par défaut pour JTA dans un JavaEE de l'environnement et de RESOURCE_LOCAL dans un JavaSE environnement.
RESOURCE_LOCAL
Avec
<persistence-unit transaction-type="RESOURCE_LOCAL">
vous êtes responsable deEntityManager
(PersistenceContext/Cache
) la création et le suivi deEntityManagerFactory
pour obtenir unEntityManager
EntityManager
instance est unePersistenceContext/Cache
Un
EntityManagerFactory
peuvent être injectés par les@PersistenceUnit
annotation uniquement (pas@PersistenceContext
)@PersistenceContext
à se référer à une unité de typeRESOURCE_LOCAL
EntityTransaction
API pour begin/commit autour de chaque appel à votreEntityManger
entityManagerFactory.createEntityManager()
deux fois les résultats dans deuxEntityManager
instances et à cet effet, deuxPersistenceContexts/Caches
.EntityManager
en cours d'utilisation (ne pas créer un deuxième, sauf si vous avez détruit le premier)JTA
Avec
<persistence-unit transaction-type="JTA">
le conteneur neEntityManager
(PersistenceContext/Cache
) la création et le suivi.EntityManagerFactory
pour obtenir unEntityManager
EntityManager
fourni par le conteneurEntityManager
peuvent être injectés par les@PersistenceContext
annotation uniquement (pas@PersistenceUnit
)@PersistenceUnit
à se référer à une unité de type JTAEntityManager
donné par le conteneur est une référence à laPersistenceContext/Cache
associés à une Transaction JTA.EntityManager
ne peut pas être utilisé car il n'est pasPersistenceContext/Cache
.EntityManager
référence à la même unité dans la même transaction aura automatiquement une référence à la mêmePersistenceContext/Cache
PersistenceContext/Cache
est vidée et nettoyée à JTA au moment de la validation