Я пытаюсь понять значение «Спящий сеанс не является потокобезопасным». Что я уже знаю (пожалуйста, поправьте меня, если я ошибаюсь):Спящий сеанс и безопасность потока
- Сессия в среде, отличной от JTA, сохраняется в потоке Local. Поэтому он привязан к текущей теме.
- Вызов getCurrentSession() в новом потоке свяжет новый сеанс со своим собственным потоком local.
- Предположим, мы разделяем сущность между двумя потоками (T1, T2), загруженными в T1 и используемыми в T2, у нас могут быть проблемы с ленивой загрузкой и т. Д., Потому что сеансы в T1 и T2 различны.
Это объясняет, что может пойти не так, когда сущность делится между различными сеансами.
То, что я не понимаю, это проблемы, которые могут возникнуть, когда сеанс разделяется между двумя и более потоками. Я знаю, что методы в сеансе не являются потокобезопасными и могут вызывать расовые условия и т. Д., Но неясно, как? Я был бы очень признателен, если бы кто-нибудь мог объяснить с примерами или перечислить один или несколько сценариев, чтобы уточнить.
Заранее спасибо
Спасибо Влад. Есть ли пример или сценарий приложения, как все может пойти не так? Это поможет мне дальше. – Mustafa
У меня нет никакого примера, но вы можете легко попробовать его сами. –