Это две совершенно разрозненные концепции. Вы получаете только «ленивую нагрузку», если получаете или устанавливаете лениво загруженные отношения.
Если вы используете оптимистичную блокировку и ваша строка находится на V2, она просто препятствует передаче измененного V2 с одного клиента (что приводит к увеличению версии до 3), а затем другому V2 от другого клиента, принуждению чтобы перезагрузить данные и отправить более позднюю версию.
Если ваша логика попадает в лениво загруженные отношения, которые затем попадают в тысячи других отношений и заканчиваются загрузкой миллионов строк, у вас будет проблема с производительностью, а не с версией. В этом случае вам может потребоваться увеличить размер партии или, возможно, сделать некоторые из них, чтобы обеспечить то, что вы хотите, загружается в одном блоке, а не в тысячи последовательных SQL-запросов.
Итак, разные проблемные пространства целиком.
Если вы пытаетесь обновить очень сложный графа объектов, в котором ваши изменения углубляются в этот граф, вы можете столкнуться с интересными оптимистичными проблемами блокировки, поскольку обеспечение «версии» всего дерева является очень сложным.
ОБНОВЛЕНИЕ: для уточнения.
Если у вас есть автомобиль (который имеет уникальные свойства, такие как марка, модель, регистрационный номер) и колеса в несколько раз. Это будет соотношение 1: 0..n, представленное в виде двух таблиц, стол для автомобилей и стол для колес, где колесо имеет FK обратно в автомобиль. (Для целей этого сообщения мы будем игнорировать отношения «многие ко многим»).
Если вы ленитесь, загрузите свои колеса, тогда, если вам не интересно, если у вас есть обоймы, шины, стопорные гайки и т. Д., Вам никогда не понадобится загрузка колес, они не актуальны, если вам нужен только регистрационный номер ,
Ваша запись автомобиля на V1, имеет регистрационный номер AB1212
Если я, как регистратор Vehicle Молдовы обновить его AC4545 и представить с V1 (текущая версия), мне удастся и номер версии будет увеличен. Я не буду ударять по Колесам, если мне это не понадобится. Если в то же время регистратор Subaltern Vehicle в другой комнате пытается сделать то же самое на V1, он будет терпеть неудачу с исключением StaleObjectException, опять же, не ударяя по Колесам и, таким образом, не будет ссылаться на ленивую нагрузку.
Но тогда, если я понимаю, что вы сказали, если у меня есть все мои отношения как ЛАЗИ, оптимистическая блокировка лишняя? – paul
Нет, это неверно. См. Править. –
«Регистратор Субалтерн-транспортного средства в другой комнате» является другим правом сделки ?. Но, как я объясняю в моем случае, нет параллельных транзакций, поэтому этот вопрос никогда невозможен, поэтому оптимистическая блокировка избыточна. Извините, если я продолжу пропустить что-то :) – paul