Да, код в deleteOldSteps
() присоединится к текущей транзакции (начатой saveListOfValidationSteps
). Если вы используете LocalContainerEntityManagerFactory
, то Spring самостоятельно будет управлять транзакциями и присоединит экземпляр entityManager
к ThreadLocal
, поэтому, когда выполняется код внутри deleteOldSteps
(), Spring сначала проверяет, существует ли EntityManager
в ThreadLocal
и использовать повторно, если он уже существует (для присоединения к существующему контексту постоянства).
Итак, когда saveListOfValidationSteps
() вызывается извне, Spring запускает новую транзакцию, а когда deleteOldSteps
вызывается из локальной системы, онаприсоединится к существующей транзакции (из-за данных ThrealLocal
).
ПРИМЕЧАНИЕ: Но если deleteOldSteps
не помечено @Transactional
, и если deleteOldSteps
не запуститсяновая транзакция, потому что локальные вызовы не учитываются пружинными аспектами.