Я работаю с весной jdbcTemplate в некоторых приложениях на рабочем столе.Начало и откат транзакций с помощью JdbcTemplate
Я пытаюсь откат некоторых операций с базой данных, но я не знаю, как я могу управлять транзакцией с этим объектом (JdbcTemplate). Я делаю несколько вложений и обновлений через последовательность методов. Когда какая-либо операция не выполняется, мне нужно отменить все предыдущие операции.
любая идея?
Обновлено ... Я попытался использовать @Transactional, но откат назад не происходит.
Нужна ли мне предыдущая конфигурация на моем JdbcTemplate?
Мой пример:
@Transactional(rollingbackFor = Exception.class,propagation = Propagation.REQUIRES_NEW)
public void Testing(){
jdbcTemplate.exec("Insert into table Acess_Level(IdLevel,Description) values(1,'Admin')");
jdbcTemplate.exec("Insert into table Acess_Level(IdLevel,Description) values(STRING,'Admin')");
}
IdLevel числовой параметр, так что ... в нашей второй команды будет происходить исключение. Когда я вижу таблицу в базе данных, я вижу первую вставку ... но, я думаю, эта операция должна быть откат.
что не так?
Только похлопывая аннотацию, там не будет работать. Аннотация - это просто метаданные, не добавляя ничего, что знает, как обрабатывать эту аннотацию, она ничего не делает. Вам нужно добавить '@ EnableTransactionManagement' в ваш класс конфигурации или' 'в xml. Также имейте в виду, что только вызовы внешних методов будут транзакционными, если вы вызываете метод «Тестирование» из того же класса, что он не будет транзакционным. –