Многопользовательские источники данных - Spring + Hibernate

Я пишу веб-приложение, которое поддерживает нескольких пользователей. У каждого пользователя своя база данных - используя H2. все схемы базы данных одинаковы.

Я хочу использовать Spring + Hibernate для этого приложения.

Итак, я застрял в том, как связать базу данных пользователя с этим пользователем - возможно, связать его в HTTPSession и расширить Spring AbstractRoutingDataSource? но не повлияет ли это на кеш Hibernate? Другой способ - иметь SessionFactory с каждым источником данных, даже если схема каждого источника данных одинакова ... так что я считаю это пустой тратой.

В любом случае выбор источника данных должен быть динамическим - они не могут быть предварительно настроены в файлах контекста, поскольку для каждого нового пользователя будет создана собственная база данных. Существуют ли какие-либо существующие фреймворки / решения?

Я не слишком много знаю о Hibernate Shards, может, это сработает?

16
задан Ahmed Ashour 6 April 2017 в 11:40
поделиться