Salut !
J'utilise Spring avec Hibernate 3. Outre la définition de ma sessionFactory Hibernate (qui n'a pas d'importance ici selon moi), j'ai défini les beans suivants :
Mon problème : quand la méthode doInTransaction est appelée à l'extérieur de l'objet qui implémente l'Interface com.rohan.sequencer.api.RohanSequencer, pas de pb. Mais quand la méthode est appelée par l'objet qui implémente l'interface com.rohan.sequencer.api.RohanSequencer (i.e une méthode de l'objet de classe A appelle doInTransaction définie dans le même objet de classe A), alors mon transactionnel ne se fait pas. c'est comme si la configuration aop ne servait à rien...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <aop:config> <aop:pointcut id="sequencerIntercept" expression="execution(* com.rohan.sequencer.api.RohanSequencer.*(..))" /> <aop:advisor advice-ref="transactionSequencerAdvice" pointcut-ref="sequencerIntercept" /> </aop:config> <tx:advice id="transactionSequencerAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="doInTransaction" propagation="REQUIRED" /> </tx:attributes> </tx:advice>
Quelqu'un peut-il m'expliquer la raison de ce comportement ?
Cordialement,
Eric Lewandowski
Partager