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