Spring 传播类型

Spring 传播类型,spring,transactions,Spring,Transactions,我尝试使用不同类型的传播: <tx:advice id="txAdvice"> <tx:attributes> <tx:method name="*" propagation="SUPPORTS"/> </tx:attributes> </tx:advice> 下次我尝试传播时=“强制” 我还将println方法添加到我的doInTransaction方法中: txTemp

我尝试使用不同类型的传播:

 <tx:advice id="txAdvice">
     <tx:attributes>
         <tx:method name="*" propagation="SUPPORTS"/>
     </tx:attributes>
 </tx:advice>

下次我尝试传播时=“强制”

我还将println方法添加到我的doInTransaction方法中:

        txTemplate.execute(new TransactionCallback<Void>() {
        @Override
        public Void doInTransaction(TransactionStatus txStatus) {
            try {
            *********************   
                                  List<Map<String, Object>> rows = dbConn.queryForList(sql, bindValues);
            ***************************
                    System.out.println(txStatus.toString());
                    System.out.println(txStatus.isNewTransaction());
                    System.out.println(txStatus.isRollbackOnly());
                }
            }catch (RuntimeException e) {
                txStatus.setRollbackOnly();
                throw e;
            }
txTemplate.execute(新建TransactionCallback()){
@凌驾
公共无效交易(交易状态txStatus){
试一试{
*********************   
List rows=dbConn.queryForList(sql、bindValues);
***************************
System.out.println(txStatus.toString());
System.out.println(txStatus.isNewTransaction());
System.out.println(txStatus.isRollbackOnly());
}
}捕获(运行时异常e){
txStatus.setRollbackOnly();
投掷e;
}
对于txStatus的支持和强制宣传的新值,结果是相似的,这表明每次都是新的事务

可能它没有使用我的建议

private TransactionTemplate txTemplate;

@Autowired
private SimpleJdbcOperations dbConn;

 @Autowired
public TQuestionsRequestJDBC(PlatformTransactionManager txManager) {
    super();
    txTemplate = new TransactionTemplate(txManager);
}


 <!-- database connection -->
 <bean id ="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
     <property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
     <property name="url" value="jdbc:mysql://127.12.141.1:3306/osapp?characterEncoding=UTF-8"/>
     <property name="username" value="lm"/>
     <property name="password" value="mlesia14"/>
     <property name="initialSize" value="5"/>
     <property name="maxActive" value="10"/>
 </bean>

 <bean id="jdbcConnection" class="org.springframework.jdbc.core.simple.SimpleJdbcTemplate">
     <constructor-arg ref="dataSource"/>
 </bean>

 <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
     <property name="dataSource" ref="dataSource"/>
 </bean>
私有事务模板txTemplate;
@自动连线
私有SimpleJDBConn;
@自动连线
公共TQuestionsRequestJDBC(平台事务管理器txManager){
超级();
txTemplate=新事务处理模板(txManager);
}

我今天尝试使用propagation=“MANDATORY”,每次它都会抛出异常-因为它不是当前事务。但使用propagation=“REQUIRED”效果很好。所以我的问题出在我身上