Код внутри циклов не откатывается в Spring Transaction - PullRequest
0 голосов
/ 02 октября 2010

У меня следующая структура кода в классе обслуживания.Проблема в случае исключения, транзакция только откат для "insert A ()".Я использую весну-ибатис.

function save
{
 insert A();

 for loop_1()
 {
   insert B()
   insert C()
   insert D() 
 }

 for loop_2()
 {
  insert E()   
  insert F()  --> throws RunTimeException
 }
}

Ответы [ 2 ]

0 голосов
/ 04 октября 2010

Спасибо всем, я не заметил, что одна из моих таблиц не является InnoDB (я использую mysql).Я изменил его на InnoDB, и теперь транзакция работает.

0 голосов
/ 02 октября 2010

Я думаю, что вам лучше проверить настройку распространения транзакции для метода B (), C (), D (), E () и убедиться, что они выполняются в одной физической транзакции с методом A (), F().

Какой из них вы используете: PROPAGATION_REQUIRED или PROPAGATION_REQUIRES_NEW?

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