【发布时间】:2015-04-24 21:02:44
【问题描述】:
在 Spring 文档中,对于 NEVER 传播:
非事务性执行,如果有事务则抛出异常 存在。
我想尝试如下:
@Transactional(propagation = Propagation.NEVER)
public void getDeps(long ID) {
System.out.println(databaseImp.getDepartmentByID(ID));
}
@Transactional(propagation = Propagation.REQUIRED)
public void allProcessOnDB_second(long ID) {
getDeps(ID);
operation(ID);
}
@Transactional
public void operation(long id){
System.out.println(databaseImp.getDepartmentByID(id));
}
好吧,代码想要做什么并不重要。
我使用@Transactional(propagation = Propagation.NEVER) 并在任何事务 方法中使用此方法,但它不起作用。我的意思是它必须抛出异常,但它不会。
我的 Spring 元配置文件 (XML) 包含以下内容:
<context:annotation-config></context:annotation-config>
<context:component-scan base-package="database.transactionmanagement"/>
<tx:annotation-driven transaction-manager="transactionManager" mode="aspectj"/>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<constructor-arg name="dataSource" ref="datasource2"/>
</bean>
<bean id="datasource2" class="org.apache.tomcat.dbcp.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost/hr"/>
<property name="username" value="root"/>
<property name="password" value=""/>
</bean>
感谢您的回答。
【问题讨论】:
标签: java spring transactions spring-aop spring-annotations