Обычный способ сделать это с помощью Spring - это иметь несколько файлов контекста. Если вы хотите убедиться, что оба найдены, поместите их в разные пакеты.
Убедитесь, что ваши бобы названы уникально, например, каждый SessionFactory
бин должен иметь уникальный идентификатор, иначе они будут перезаписывать друг друга.
Вот подсказка для выяснения, загружены ли они и созданы ли Spring: включите ведение журнала на уровне отладки для Spring (например, в Log4J ), Spring покажет, какие файлы и компоненты он загружает и создает. Это действительно полезно.
Если оба источника данных должны использоваться в одной транзакции, убедитесь, что вы используете TransactionManager, предпочтительно также XA (двухфазное принятие). При работе с несколькими источниками данных я обычно заставляю Spring предоставлять разграничение транзакций на уровне сервиса. Внутри метода service все выполняется в одной транзакции, и я могу использовать несколько источников данных.
Другая альтернатива, если обе схемы находятся в одной и той же базе данных, - это настроить Hibernate для подключения к одной схеме и доступа к таблице второй схемы через первую. Вы можете сделать это в Oracle, используя гранты и синонимы. Это вариант для вас, или вам действительно нужно подключиться к двум разным базам данных?