У меня возникла производственная проблема.
У меня есть данные в одной таблице T1, которые мне нужно сбросить при запуске метода, и мне нужно обновить еще раз в конце метода.
Допустим, скажем
У меня есть родительский метод транзакции
@Transactional
public method A(){
callResetTable1();
updateBillingDetail();
callUpdateTable1();
}
@Transactional(propagation=Propagation.REQUIRES_NEW)
public callResetTable1(){
dao.callUpdate()//table A
}
Согласно моему пониманию, сначала будет вызван метод callResetTable1, который будет выполняться в отдельной транзакции и сохраняться (данные будут в БДдля родительской транзакции), затем вызывается updateBillingDetail, а затем вызывается callUpdateTable1, который извлекает новые данные, полученные в методе callResetTable1, о том, что callUpdateTable1 обновляется.
Для нас, когда это происходит, таблицаблокируется.