Compromiso hará que la base de datos se confirme. Los cambios en el objeto persistente se escribirán en la base de datos. Descarga es el proceso de sincronización el almacén persistente subyacente con estado persistente mantenido en memory.ie. se actualizará o insertará en sus tablas en la transacción en ejecución, pero puede no confirme esos cambios (esto depende de su modo de descarga).
Cuando tiene un objeto persistente y cambia un valor en él, se ensucia e Hibernate necesita eliminar estos cambios en su capa de persistencia. Puede hacer esto automáticamente por usted o puede que necesite hacerlo manualmente, eso depende de su modo de descarga (automático o manual) :)
En resumen:transaction.commit() vacía la sesión, pero también finaliza la unidad de trabajo.
Hay una referencia similar a su problema aquí