Учитесь юноша. И никаких собесов пока за плечами нет хотя бы 2-3 опенсорцных проекта, где вам скажут, что не грязнои не уродливо пишете. Всем лучше сделаете. А себе в плане ЗП так лучше всех.
Вопрос на счет анотации @Transactional, у меня допустим есть ServiceB у него есть метод помеченный @Transactional и он что либо делает в БД, есть ServicA который тоже что то делает с БД а потом вызывает в этом же методе - метод сервиса B который также помечен @Transactional, что будет? две транзакции откроются? или сервис B будет юзать уже открую транзакцию сервисом А ?
Вопрос на счет анотации @Transactional, у меня допустим есть ServiceB у него есть метод помеченный @Transactional и он что либо делает в БД, есть ServicA который тоже что то делает с БД а потом вызывает в этом же методе - метод сервиса B который также помечен @Transactional, что будет? две транзакции откроются? или сервис B будет юзать уже открую транзакцию сервисом А ?
А не проще вынести метод в отдельный модуль и пусть оба сервиса используют... ИМХО так и проще и красивей.
Выяснил, все зависит от настроек propagation, по default стоит required и если транзакция уже открыта он подключится к текущей а если нет то откроет новую, есть еще REQUIRED_NEW он создает новую транзакцию
Вопрос на счет анотации @Transactional, у меня допустим есть ServiceB у него есть метод помеченный @Transactional и он что либо делает в БД, есть ServicA который тоже что то делает с БД а потом вызывает в этом же методе - метод сервиса B который также помечен @Transactional, что будет? две транзакции откроются? или сервис B будет юзать уже открую транзакцию сервисом А ?
Если не указано required new, то транзакция переиспользуется.
Если не указано required new, то транзакция переиспользуется.
ЛоЛ а мне один сениор который работает в серез банке, говорил что не нужно использовать вложенные @Transactional, так как он каждый раз будет создавать новый и создавать новый pull connecti к БД