Я сопоставил несколько классов Java, таких как Customer, Assessment, Rating, ... с базой данных с Hibernate. Теперь я думаю о режиме истории для всех изменений постоянных данных. Приложение представляет собой веб-приложение. В случае удаления (или редактирования) данных другой пользователь должен иметь возможность увидеть изменения и отменить их. Поскольку изменения выходят за рамки текущего сеанса, я не знаю, как решить эту проблему с помощью чего-то вроде шаблона Command, который рекомендуется для функции отмены.
Для редактирования одного значения подход, подобный этому вопросу, звучит нормально. Но как насчет удаления всей постоянной сущности? Самый простой способ - поставить отметку в таблице, если этот покупатель удален или нет. Самый сложный способ - создать таблицу для каждого класса, в которой хранятся удаленные сущности. Есть что-нибудь посередине? И как я могу с комфортом интегрировать эти две вещи в систему O / RM (в моем случае Hibernate), не возясь с SQL (чего я хочу избежать из-за переносимости), и при этом иметь достаточную гибкость?
Есть лучшая практика?