Bonjour, j'ai un poblème avec la gestion de transaction avec Spring 2.0.3
voici ma classe de test :
le proleme c'est que meme si la 3eme requete genere une erreur, il ajoute les 2 premiere dans la base.
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 private KeywordManager keywordManager = null; public void test1() throws Exception { try{ ApplicationContext factory = new ClassPathXmlApplicationContext("beans.xml"); keywordManager = (KeywordManager) factory.getBean("KeywordManager"); keywordManager.addKeyWord("test1", "spring"); keywordManager.addKeyWord("test2", "spring"); /* cette requete va généré une erreur*/ keywordManager.addKeyWord("testtest testtesttesttesttest", "spring"); }catch (Exception e) { if(LOG.isErrorEnabled()) LOG.error("Add key word failed"+e); } }
voici mon beans.xml :
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
17
18
19
20
21
22
23
24
25
26
27
28
29 <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"><value>${jdbc.driver}</value></property> <property name="url"><value>${jdbc.url}</value></property> <property name="username"><value>${jdbc.username}</value></property> <property name="password"><value>${jdbc.password}</value></property> </bean> <bean id="KeywordManager" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="target"> <ref local="KeywordManagerImpl" /> </property> <property name="transactionManager"> <ref local="transactionManager" /> </property> <property name="transactionAttributes"> <props > <prop key="add*">PROPAGATION_REQUIRED</prop> </props> </property> </bean> <bean id="KeywordManagerImpl" class="net.db.service.KeywordManagerImpl"> <property name="dao" ref="KeywordDAO" /> </bean> <bean id="KeywordDAO" class="net.db.dao.KeywordDAOImpl"> <property name="dataSource" ref="dataSource" /> </bean>
Partager