Bonjour,
J'ai une question qui me chiffonne dans la gestion des transactions avec Spring.
Voici grosso-modo la couche business et DAO :
- une classe business annotée par @Transactional
- une classe DAO avec en attribut entityManager annoté par @PersistenceContext
Je n'utilise pas persistence.xml, je fais tout dans Spring comme ceci :
Donc, je sais que le dernier bean c'est celui qui va injecter l'entityManager dans mon DAO mais comment sait-il quelle entityManagerFactory utiliser ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <bean id="uneDAO" class="...." /> <bean id="service" class="..."> <property name="attributDAO" ref="uneDAO" /> </bean> <bean id="entityManagerFactory" class="...."> propertie....</bean> <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
Si un moment dans mon DAO je ferme l'entityManager, est-ce que Spring va le réinjecter ?
Une autre question : lors de l'exécution de mon service, comment Spring débute une transaction ? Il récupère l'entityManager du DAO et il fait entiyManger.getTrancation().begin() ?
Merci d'avance pour votre aide.
Partager