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 :
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" />
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 ?
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.