Когда Hibernate сбрасывает сеанс, как он определяет, какие объекты в сеансе являются грязными?
Насколько я понимаю, Hibernate состоит в том, что при загрузке объектов из БД они добавляются в сеанс. В различные моменты, в зависимости от вашей конфигурации, сеанс сбрасывается. На этом этапе измененные объекты записываются в базу данных.
Как Hibernate решает, какие объекты являются «грязными» и должны быть написаны?
Пропускают ли прокси-серверы, сгенерированные Hibernate, перехваты назначений для полей и добавляют объект в грязный список в Session?
Или Hibernate просматривает каждый объект в сеансе и сравнивает его с исходным состоянием объектов?
Или что-то совершенно другое?