Cuando Hibernate descarga una sesión, ¿cómo decide qué objetos de la sesión están sucios?

Mi comprensión de Hibernate es que a medida que los objetos se cargan desde la base de datos, se agregan a la sesión. En varios puntos, dependiendo de su configuración, la sesión se vacía. En este punto, los objetos modificados se escriben en la base de datos.

Cómo decide Hibernate qué objetos están 'sucios' y necesitan escribirse?

¿Los proxies generados por Hibernate interceptan las asignaciones a los campos y agregan el objeto a una lista sucia en la sesión?

¿O Hibernate mira cada objeto en la sesión y lo compara con el estado original de los objetos?

¿O algo completamente diferente?

Respuestas a la pregunta(5)

Su respuesta a la pregunta