#spring-transactions #spring-data-r2dbc
Вопрос:
В моем проекте нам нужно использовать 2 менеджера транзакций(для JPA и R2DBC), оба они инициализированы автоматической настройкой(два компонента с именами TransactionManager и connectionFactoryTransactionManager), в документации(ссылка) говорится, что:
Методы, возвращающие реактивный тип, такие как Publisher или поток Котлина (или их подтип), подходят для управления реактивными транзакциями.
Но на самом деле это не так, весна завершается с сообщением об исключении: No qualifying bean of type 'org.springframework.transaction.TransactionManager' available: expected single matching bean but found 2: transactionManager,connectionFactoryTransactionManager
Когда я проанализировал код, основная логика, определяющая, какой менеджер транзакций использовать, находится в TransactionAspectSupport.determineTransactionManager
но, к сожалению, эта логика не обнаруживает диспетчер вызовов методами, возвращающими тип, как указано в документации. Ну, в качестве обходного пути я могу выбрать, какой менеджер tx явно использовать в аннотации «@Транзакционный». Эта логика(автоматическое определение того, какой диспетчер tx использовать в зависимости от возвращаемого значения метода) еще не реализована, или я делаю что-то не так?