Управление транзакциями весной: - как поступить, когда мы вложили вызов? - PullRequest
0 голосов
/ 01 октября 2019
Class1{
    public void parentMthod(List<Map<String, Object>> data){
        for(Map map : data){
            call1(map);
            call2(map);
            call2(map);
        }
    }
}


class2{

    void call1(Map map){
        //some code
    }

    void call2(Map map){
        //some code
    }

    void call3(Map map){
        //some code
    }

}

Здесь call1() и call2() и call3() должны быть согласованы. Как использовать управление транзакциями здесь? Должен ли я сделать родителя @Transaction(Propagation = required ), а ребенка - @Transaction(Propagation = required_new )? в цикле for предположим, что у меня есть 10 записей, и если 5-я запись имеет проблему, то только 5-я должна откатиться от дочернего вызова, но для других 9 записей данные должны быть зафиксированы в базе данных.

...