gestion des transactions avec Spring Probleme
Bonjour, j'ai un poblème avec la gestion de transaction avec Spring 2.0.3
voici ma classe de test :
Code:
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:
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> |