Это вопрос дизайна, конкретный код не отправлен для защиты моей внизу.
При работе с Hibernate стандартный рабочий процесс выглядит следующим образом:
с возможными итерациями до 2-4.
Каковы разумные варианты использования Session.clear ()?
A: Конкретная проблема, с которой я столкнулся, - это (большой) фрагмент кода, который загружает и изменяет объекты, а затем очищает () в сеансе, по сути, отбрасывая внесенные изменения. (Бизнес-задача, которая должна быть выполнена, не включает в себя изменение сущностей, поэтому код «работает»).
Мне кажется, что правильным дизайном было бы сделать уверены, что (большой) фрагмент кода не вносит изменений, которые он не хочет сохранять?
B: Я предполагаю, что Session.clear () существует для удобства / гибкости, а не потому, что это хорошая идея.
Я неправильно понял философию гибернации?
C: Подвопрос: Является ли для кода фреймворка плохой идеей безоговорочно clear () сеанс после завершения задачи? ИМХО, фреймворк должен жаловаться, если сеанс грязный после завершения задачи! Сессию следует закрыть, поскольку задача выполнена ... (Без учета производительности в течение минуты)
(Метки A, B и C, чтобы вы могли указать, на какую часть ответа вы отвечаете).