Вот настройка: у класса сущностей есть коллекция других сущностей, которые загружаются лениво.Хитрость в том, что мне нужно выполнить некоторую работу с данными (например, я хочу вычислить определенную контрольную сумму с элементами сбора).
Хитрость заключается в том, что я хочу любой ценой избежать условий гонки, таких как: «кто-то обновил сущность, пока я выполнял вычисления данных».В обычных обстоятельствах я просто объявлю синхронизацию getter / setter и буду доволен этим.НО, насколько я понимаю, если другой поток решит обновить состояние объекта из базы данных, в то время как я нахожусь в процессе вычисления моей контрольной суммы, он будет полностью игнорировать «синхронизированные» методы (он получит прямой доступ к полю).
Возможно, я ошибаюсь.Таким образом, вопрос заключается в следующем: есть ли способ «заблокировать» доступ к части сущности или ко всей сущности на время начальных вычислений контрольной суммы?
Заранее спасибо!PS Если вам нужен фрагмент кода для иллюстрации проблемы - просто дайте мне знать.Пока я думаю, что вопрос довольно ясен.