@Transactional требуется новый - PullRequest
0 голосов
/ 09 апреля 2019

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

Вот так выглядит мой код

  @Service
    public class A{

    @Autowired
    B b;

    public method A() {
     b.methodB(value);

    // do some calculation 
     b.methodC(value);
    }
}



 @Service
    public class B{

     @Autowired
     Dao dao;

    @Override
    @Transactional(propagation=Propagation.REQUIRES_NEW)
    public methodB(String value){
     dao.save(value);
    }

    @Override
    @Transactional(propagation=Propagation.REQUIRES_NEW)
    public methodC(String value){
     dao.update(value);
    }
}


 @Repository
 public class DaoImpl implement Dao{
@Override
public void saveBenefitCounter(BString value)  {
    manager.persist(value);
}

@Override
public void update(String value) {
    manager.merge(value); 

}
 }

Проблема заключается впервые данные не фиксируются, поскольку данные вставки не сохраняются до того, как они были использованы для метода methodC.

Могу ли я узнать, почему @Transactional (распространение = Propagation.REQUIRES_NEW) не работает для вызова постоянства?

Нужно ли добавлять метод @Transactional (распространение = Propagation.REQUIRES_NEW) в слой DAO для метода сохранения?

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