Получите данные, которые вставляются с помощью @Transactional в ту же транзакцию

Я вставляю данные одним методом (имеет @Transactional(propagation = Propagation.Required)), но в другом методе (имеет @Transactional(propagation = Propagation.Required)), если я пытаюсь получить те же данные, что он дает null.

Оба метода написаны на уровне службы с помощью @Transactional (rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)

Как получить данные, которые были вставлены в одну транзакцию. Что-то вроде: -

 @Service
    public class Service{
        @Transactional
        public void method(){
            mapper.insert();        //insert to DB(Using Mapper interface)
            ServiceLayer.method2()
        }
    }

@Service
public void ServiceLayer{

    @Transactional
    public static void method2(){
        result  = mapper.select() //Select inserted data - returning null
    }
}

Ответ 1

Я нашел ответ... после удаления @transactional из ServiceLayer.method2() он работал нормально.

Ответ 2

Чтобы сохранить изменения, внесенные в текущий сеанс, вы можете вызвать entityManager.flush();