Как в java использовать разные транзакции для вложенного метода
Условно есть некий класс сервис: TestService Есть приложение на спринге. Класс выглядит так:
public class TestService{
@Transactional
public void first() {
second();
}
@Transactional
protected void second() {
//todo
}
}
Мне необходимо чтобы метод second каждый раз работал в новой физической транзакции. Почитал статьи и в них пишут что если оставить все как есть, то по факту, метод second будет работать в той же транзакции что и first.
Собственно вопрос: Как сделать так, чтобы метод second работал в своей транзакции? Желательно без введения дополнительных классов. Так же интересует, как в junit можно проверить что транзакции у first и second разные?