Pourquoi le printemps n'intercepte pas la transaction?
-
13-11-2019 - |
Question
essayé de configurer le ressort pour les tests avec hibernate et transactions.Obtenir le haricot du contexte de l'application qui est marqué d'une transaction @TransActional n'est pas intercepté.Qu'est-ce que je pouvais manquer dans la configuration?
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
<property name="dataSource" ref="dataSource"></property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<import resource="spring-dao.xml"/>
<tx:annotation-driven transaction-manager="transactionManager" />
<bean id="userService" class="com.test.service.UserServiceimpl">
<property name="userDao" ref="userDao"/>
</bean>
public interface UserService {
public abstract User loadUserById(long userId);
@Transactional
public abstract void doSomething();
}
public class UserServiceimpl implements UserService {
@Override
public void doSomething() {
User user = loadUserById(1);
user.fillUpMoney(999);
userDao.update(user);
throw new RuntimeException("Shpould be rollback");
}
La solution 2
Ne pas conquérir Beansfactory;)
http://forum.springsource.org/showthread.php? 122292-Sprinng-net pas-intercept-transaction
Autres conseils
Ne pas annoter la méthode abstraite comme transactionnelle, annotant la mise en œuvre concrète.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow