Я использую OpenJPA и у меня проблема с блокировкой.Я уже понимаю, что такое OptimisticLockException и когда оно генерируется.
Ниже * вы можете найти небольшой абзац об исключениях из оптимистической блокировки.
В моем файле persistent.xml у меня есть следующий код xml, но он не работает.Почему?
Обработка исключений оптимистической блокировки
К сожалению, программисты часто бывают слишком умнымидля их же блага.Первая проблема, которая возникает при использовании оптимистической блокировки, - что делать, когда возникает исключение OptimisticLockException.Типичный ответ дружелюбного соседского супер-программиста - автоматически обработать исключение.Они просто создадут новую транзакцию, обновят объект, чтобы сбросить его версию, и объединят данные обратно в объект и повторно передадут его.Проблема Престо решена, или это так?
Это на самом деле сводит на нет всю точку блокировки в первую очередь.Если это то, что вы хотите, вы также можете использовать без блокировки .К сожалению, исключение OptimisticLockException редко обрабатывается автоматически, и вам действительно нужно беспокоить пользователя об этой проблеме.Вы должны сообщить о конфликте пользователю и сказать «извините, но конфликт редактирования произошел, и ему придется повторить свою работу», или, в лучшем случае, обновить объект и представить пользователю текущие данные иданные, которые они представили, и помогают им объединить эти два, если это необходимо.
Некоторые автоматизированные инструменты слияния будут сравнивать две конфликтующие версии данных, и если ни одно из отдельных полей не конфликтует, то данные будут просто автоматически объединеныбез помощи пользователя.Это то, что делают большинство систем контроля версий программного обеспечения.К сожалению, пользователь обычно лучше может решить, когда что-то конфликтует, чем программа, просто потому, что две версии .java-файла не изменили одну и ту же строку кода, не означает, что не было никакого конфликта, первый пользователь мог удалитьметод, к которому другой пользователь добавил метод для ссылки, и несколько других возможных проблем, которые приводят к тому, что обычно ночная сборка прерывается очень часто.