Почему @Transactional (распространение = Propagation.REQUIRES_NEW) не работает? - PullRequest
0 голосов
/ 22 мая 2019

Моя задача - импортировать данные в несколько этапов, я хочу обновить таблицу состояния и зафиксировать ее после обновления, но импорт будет зафиксирован после импорта всех данных. Я использую локальный класс для обновления таблицы состояния, код как показано ниже, но таблица staus никогда не фиксируется до завершения импорта, что я могу сделать?

...
class UpdateStatusTable {
    @Transactional(propagation = Propagation.REQUIRES_NEW)
    private void updateStepTime(String step, int count) {
        dailyBatchRepository.updateTime(step);
    }

    @Transactional(propagation = Propagation.REQUIRES_NEW)
    private int insertTime() {
        return dailyBatchRepository.insertTime();
    }
}

@Override
@Transactional
public int update() {
    UpdateStatusTable updateStatusTable = new UpdateStatusTable();
    updateStatusTable.insertTime();
    count = dailyBatchRepository.updateMapping();
    updateStatusTable.updateStepTime(String.valueOf(step++), count);
    count = dailyBatchRepository.updateIndex();
    updateStatusTable.updateStepTime(String.valueOf(step++), count);
    ...
}
...
  • Элемент списка
...