2013-06-28 2 views
0

J'essaie d'utiliser différents types de propagation:types de propagation

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

La prochaine fois que j'essaie propagation = "INDISPENSABLE"

Je voudrais également ajouter la méthode println à ma méthode de 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; 
      } 

Et le résultat est simillar pour Supports et propagation Obligatoire^nouvelle valeur de txStatus, il me montre que c'est une nouvelle transaction à chaque fois.

Peut être ne pas utiliser mon conseil tx?

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> 

Répondre

0

J'essaie aujourd'hui avec la propagation = « INDISPENSABLE » et il émet une exception à chaque fois - parce qu'il n'y a pas de transaction en cours. Mais ça marche bien avec propagation = "REQUIS". Donc, mon problème était en moi.