Что вы думаете об очистке контекста персистентности при каждом выполнении thred при реализации шаблона сеанса на запрос? - PullRequest
1 голос
/ 19 января 2012

Когда вы работаете с JPA и реализуете шаблон сеанса для запроса (транзакция области в смысле потока), часто ли вам необходимо очищать контекст постоянства в конце каждой транзакции?В моем случае я делаю это, потому что я сохраняю созданные менеджеры сущностей в экземпляре ThreadLocal, поэтому, когда я использую один и тот же экземпляр EntityManager для потока.Но время от времени, когда пользователь выполняет новый запрос, ThreadLocal возвращает старый контейнер постоянства, содержащий старые данные постоянства.Как вы думаете, моё решение целесообразно, учитывая нефункциональные требования к масштабируемости и производительности?

Заранее спасибо, ребята, и С наилучшими пожеланиями, Симеон

1 Ответ

2 голосов
/ 19 января 2012

Если у вас есть устаревшие контексты постоянства в новых запросах, вы неправильно внедрили шаблон сеанса для запроса.

Вам нужно закрыть EntityManager и удалить его из ThreadLocal, когда обработка запроса завершена.Если вы это сделаете, вам не нужно будет звонить clear() (за исключением случаев, когда это действительно необходимо, например, для массовых пакетных операций).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...