Bonjour, j'ai un poblème avec la gestion de transaction avec Spring 2.0.3

voici ma classe de test :
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);
		}
	}
le proleme c'est que meme si la 3eme requete genere une erreur, il ajoute les 2 premiere dans la base.

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>