试图了解Hibernate会话

时间:2012-04-01 18:40:46

标签: java hibernate

如果我使用Hibernate会话保存实体,然后探测从下一行的当前会话中获取此实体(即尚未将更改写入DB),会话将返回一个对象吗?我认为它应该,因为它也知道已经对它做了哪些改变。

2 个答案:

答案 0 :(得分:0)

是的,已保存的实体和正在加载/查询的实体的视图应该是一致的。有时查询会导致在执行查询之前刷新对数据库的所有未完成的更改,以便产生这种一致性(假设会话设置为默认的自动刷新模式)。

此外,在这种情况下,会话应返回您保存的完全相同的对象,而不是引用数据库中同一行的副本。

答案 1 :(得分:0)

应该,但是在实现相等和哈希码时必须小心。 Session只是一个大型的hashmap,实体以对象ID为键。因此,如果您尝试按ID检索对象,则应获得相同的对象。