Вы можете сделать это, создав интерфейс, который должны реализовывать классы вашего домена, обеспечивающие предыдущее состояние:
public interface PreviousStateProvider {
public T getPreviousState();
public void setPreviousState(T state);
}
Класс домена должен иметь частное свойство для хранения состояния в том месте, в котором он был загружен.
Затем вы можете создать прослушиватель Hibernate PostLoad, который устанавливает загруженное состояние для объекта домена в точке, в которой он загружен. Затем, когда вы придете обновить объект домена, вы можете получить доступ к предыдущему (загруженному) состоянию, используя:
getPreviousState()
способ.
Надеюсь, это понятно.