Сессионные фабрики для обработки нескольких соединений с БД - PullRequest
2 голосов
/ 04 января 2012

У меня есть задача создать несколько фабрик сессий для разных источников данных. Один источник данных будет использоваться для запросов на чтение, а другой - для запросов на чтение и запись.

Каждый API нашей службы баз данных (оболочка над DAO) выполняется как транзакция. Один API может вызывать несколько функций DAO с разными свойствами чтения / записи.

Как лучше всего выполнить эту задачу?

1 Ответ

1 голос
/ 04 января 2012

Я предполагаю, что разные источники данных - это разные БД. В противном случае вы можете использовать атрибут readOnly с аннотацией @Transactional для управления транзакциями только для чтения.

Вы можете внедрить две отдельные фабрики сеансов на уровне DAO для управления этими транзакциями. В качестве альтернативы вы можете использовать AbstractRoutingDataSource. См. Описание на здесь

...