Hibernate会话是一个缓存。它缓存从数据库读取的实体,还缓存您对其中包含的实体所做的更改,以及添加和删除的实体,直到会话被刷新(即将所有挂起的更改写入数据库)。 当一些更改尚未被刷新时,会话称为脏。因此拥有脏会话是完全正常的。会话在事务提交之前被刷新。
在Hibernate中,脏会话是指在会话中加载一个对象,然后对其进行修改的情况。或者,在打开会话并创建新对象时出现。即使您没有显式调用任何插入/更新操作,Hibernate也会将会话标记为“脏”,并在关闭会话时保存更改。
这段话的意思是,你对内存中、受管理的、持久化对象进行了更改,但这些更改尚未刷新到数据库中。hibernate的基本思想是,内存中持久化对象的状态就是应用程序的状态。如果你修改了一个受管理的对象,hibernate会在下一个机会将其放入数据库中。你不应该对你不想变成持久化的受管理对象进行“临时”更改,因为它们会被持久化。在执行查询之前,hibernate会将所有受管理对象的内存状态刷新到数据库中,以便查询与你的应用程序状态相符。请按原样保留HTML标签。