Объект с несколькими транзакциями из определения одной транзакции - PullRequest
0 голосов
/ 17 октября 2018

Мне нужно управлять транзакциями для двух баз данных, и обе они расположены на разных серверах.

Мне просто интересно узнать среди приведенного ниже фрагмента, какой из них правильный или более эффективный.как насчет SNIPPET 2 , это правильно?

можем ли мы иметь несколько транзакций через определение одной транзакции?

SNIPPET 1: определение нескольких транзакций

    import com.awzpact.uam.domain.Userdetail;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.jdbc.datasource.DataSourceTransactionManager;
    import org.springframework.stereotype.Service;
    import org.springframework.transaction.TransactionDefinition;
    import org.springframework.transaction.TransactionStatus;
    import org.springframework.transaction.support.DefaultTransactionDefinition;

    /**
     *
     * @author jack
     */
    @Service
    public class NewPayrollService extends BaseN {
        final TransactionDefinition prayasTxnDefinition = new DefaultTransactionDefinition();
        final TransactionDefinition erpTxnDefinition = new DefaultTransactionDefinition();

    public void getSalarayData(final String yearMonth, final String regionId, final String circleId, final Userdetail loginUser){
     final String tableSuffix = yearMonth.substring(4, 6) + yearMonth.substring(0, 4);

     final TransactionStatus prayasTransaction = this.prayasTransactionManager.getTransaction(prayasTxnDefinition);
     final TransactionStatus erpTransaction = this.erpTransactionManager.getTransaction(erpTxnDefinition);

    }


    @Autowired
     DataSourceTransactionManager prayasTransactionManager;

    @Autowired
     DataSourceTransactionManager erpTransactionManager;
    }

SNIPPET 2-определение одной транзакции

import com.awzpact.uam.domain.Userdetail;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.stereotype.Service;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.DefaultTransactionDefinition;

/**
 *
 * @author jack
 */
@Service
public class NewPayrollService {
    final TransactionDefinition transcationDefinition = new DefaultTransactionDefinition();

public void getSalarayData(final String yearMonth, final String regionId, final String circleId, final Userdetail loginUser){
 final String tableSuffix = yearMonth.substring(4, 6) + yearMonth.substring(0, 4);

 final TransactionStatus prayasTransaction = this.prayasTransactionManager.getTransaction(transcationDefinition);
 final TransactionStatus erpTransaction = this.erpTransactionManager.getTransaction(transcationDefinition);

}


@Autowired
 DataSourceTransactionManager prayasTransactionManager;

@Autowired
 DataSourceTransactionManager erpTransactionManager;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...