#hibernate #sessionfactory
Вопрос:
У меня есть устаревший код, который генерирует 2 SessionFactories для одной и той же базы данных, то есть 1 БД и 2 SessionFactories.
Когда я перехожу в режим гибернации 5.4.3, я получаю
орг.спящий режим.Исключение DuplicateMappingException: Дублирование сопоставления запросов
при попытке запустить приложение. Когда я создаю только одну фабрику сеансов, вышеупомянутое исключение не возникает.
Могут ли некоторые объяснить мне причину и есть ли какая-либо веская причина для 2 фабрик сеансов для 1 базы данных?
Ответ №1:
Это кажется само собой разумеющимся.. вы попытались сопоставить один или несколько именованных запросов с одним и тем же именем в рамках одного и того же SessionFactory (SF).
Существует довольно много веских причин, по которым вы можете захотеть использовать multipleSessionFactories.
- Возможно, база данных является многопользовательской, и каждый SF сопоставляется с другим клиентом
- Возможно, у каждого SF разные уровни разрешений
- …
Трудно сказать без более подробной информации. И вашим лучшим источником «почему» будет устаревший разработчик