Это на основе снимка.
При загрузке объекта его состояние сохраняется в сеансе как объект [].
При очистке текущее состояние преобразуется в объект [] и сравнивается с исходным состоянием, чтобы определить, какие свойства являются грязными.
Это более эффективно по многим причинам. Одним из них является то, что вам не нужен прокси для отслеживания изменений. Другая причина заключается в том, что если вы установите для свойства другое значение, а затем восстановите его, объект будет считаться незапятнанным, что позволит избежать ненужного вызова БД.