Создание двух сеансов гибернации

#hibernate #sessionfactory

Вопрос:

У меня есть устаревший код, который генерирует 2 SessionFactories для одной и той же базы данных, то есть 1 БД и 2 SessionFactories.

Когда я перехожу в режим гибернации 5.4.3, я получаю

орг.спящий режим.Исключение DuplicateMappingException: Дублирование сопоставления запросов

при попытке запустить приложение. Когда я создаю только одну фабрику сеансов, вышеупомянутое исключение не возникает.

Могут ли некоторые объяснить мне причину и есть ли какая-либо веская причина для 2 фабрик сеансов для 1 базы данных?

Ответ №1:

Это кажется само собой разумеющимся.. вы попытались сопоставить один или несколько именованных запросов с одним и тем же именем в рамках одного и того же SessionFactory (SF).

Существует довольно много веских причин, по которым вы можете захотеть использовать multipleSessionFactories.

  • Возможно, база данных является многопользовательской, и каждый SF сопоставляется с другим клиентом
  • Возможно, у каждого SF разные уровни разрешений

Трудно сказать без более подробной информации. И вашим лучшим источником «почему» будет устаревший разработчик