#java #orm #jdbc
#java #orm #jdbc
Вопрос:
Я пытаюсь создать настольное приложение с помощью eclipse-rcp. В этом приложении я использую платформу ORM для загрузки объектов из базы данных и использую JFace-databinding для привязки этих объектов к пользовательскому интерфейсу, чтобы пользователи могли изменять данные, содержащиеся в этих объектах.
поскольку объекты загружены, другие пользователи или другой клиент также могут работать с теми же данными. поэтому, когда пользователь хочет сохранить объекты обратно в базу данных, данные, содержащиеся в этих объектах, могут отличаться от данных в базе данных, разница может быть вызвана моим приложением или вызвана другими.
должен ли я проверять реальные данные в базе данных, когда мне нужно сохранить объект, который может быть уже не свежим?
возможно, это распространенная проблема в ORM, но мне впервые приходится иметь дело с ORM.
Комментарии:
1. Кстати: точно такая же проблема возникает в веб-приложениях и практически во всем, что имеет цикл загрузки-редактирования-сохранения. Это не относится к настольным приложениям.
Ответ №1:
да, перед сохранением неплохо свериться с «реальными» данными. у вас может быть специальное поле — отметка времени последнего обновления или количество приращений.
такой подход называется оптимистической блокировкой и, поскольку он очень типичен, он может поддерживаться ORM.