Возможно, более простой подход - никогда не позволять что-либо удалять из таблицы.Вместо этого просто есть столбец deleted INT(1) DEFAULT 0
, который указывает, была ли удалена строка.Затем вы можете легко получить список всех строк / сущностей, которые были удалены, и восстановить все / все, что вы хотите, просто сняв флаг deleted
.
Хорошая особенность такого подхода состоит в том, что онORM-агностик.Вы можете выбрать любую желаемую легкую альтернативу Hibernate , которая вам нравится, и все они будут хорошо играть с этим видом техники.Недостатком является то, что вам нужно немного поработать вручную, чтобы реализовать функциональность восстановления.