Сессионные фабрики для обработки нескольких соединений с БД
У меня есть задача создать несколько фабрик сессий для разных источников данных. Один источник данных будет использоваться для запросов на чтение, а другой - для запросов на чтение и запись.
Каждый API нашей службы баз данных (оболочка над DAO) выполняется как транзакция. Один API может вызывать несколько функций DAO, имеющих разные свойства чтения / записи.
Каков наилучший способ выполнить эту задачу?
1 ответ
Я предполагаю, что разные источники данных - это разные БД. В противном случае вы можете использовать атрибут readOnly с аннотацией @Transactional для управления транзакциями только для чтения.
Для управления этими транзакциями можно добавить две отдельные фабрики сеансов на уровне DAO. В качестве альтернативы вы можете использовать AbstractRoutingDataSource . См. Написать здесь