согласованность данных в настольном приложении

#java #orm #jdbc

#java #orm #jdbc

Вопрос:

Я пытаюсь создать настольное приложение с помощью eclipse-rcp. В этом приложении я использую платформу ORM для загрузки объектов из базы данных и использую JFace-databinding для привязки этих объектов к пользовательскому интерфейсу, чтобы пользователи могли изменять данные, содержащиеся в этих объектах.

поскольку объекты загружены, другие пользователи или другой клиент также могут работать с теми же данными. поэтому, когда пользователь хочет сохранить объекты обратно в базу данных, данные, содержащиеся в этих объектах, могут отличаться от данных в базе данных, разница может быть вызвана моим приложением или вызвана другими.

должен ли я проверять реальные данные в базе данных, когда мне нужно сохранить объект, который может быть уже не свежим?

возможно, это распространенная проблема в ORM, но мне впервые приходится иметь дело с ORM.

Комментарии:

1. Кстати: точно такая же проблема возникает в веб-приложениях и практически во всем, что имеет цикл загрузки-редактирования-сохранения. Это не относится к настольным приложениям.

Ответ №1:

да, перед сохранением неплохо свериться с «реальными» данными. у вас может быть специальное поле — отметка времени последнего обновления или количество приращений.

такой подход называется оптимистической блокировкой и, поскольку он очень типичен, он может поддерживаться ORM.