Я недавно принял участие в работе над базой данных / гибернацией нашего проекта, и у меня возникли ужасные проблемы с пониманием некоторых основ нашего дизайна, касающихся использования управляемых сеансов.
У нас есть класс util, содержащий статический сеансэто только инициализируется один раз.Извлечение сеанса используется каждым DAO в системе через статический метод getBoundSession ().Приложение работает 24/7.Является ли это общим дизайном?
Одним из преимуществ, которое чрезвычайно полезно, является то, что ленивые атрибуты / коллекции в объектах домена могут использоваться на уровне бизнес-логики, поскольку сеанс всегда открыт.Еще одно преимущество заключается в том, что полученные объекты будут сохраняться в кэше в течение сеанса.
Мне кажется, что мы используем Hibernate неправильно, просто кажется неправильным иметь один постоянно открытый сеанс.Также это вызывает проблемы, когда отдельные потоки используют класс util, следовательно, разделяют сеанс.С другой стороны, я не могу найти способ добиться вышеуказанных преимуществ (особенно первого) с другим дизайном.Кто-нибудь может пролить свет на это?
Спасибо
Джеймс