如果我Flush
NHibernate会话将所有更改都显示给DB中的其他会话,或者NHibernate仅在commit
交易之后保证这一点?
我使用NHibernate更新数据,然后在Oracle包中调用函数,而且我不会将数据陈旧。
答案 0 :(得分:2)
Flush只会将数据sql发送到数据库服务器。提交将它自己提交到数据库。只有在提交后才能查询数据。
请注意,只有当您的隔离级别为“已提交读取”(默认设置)时才会出现这种情况,使用“未提交读取”时,数据在发送到数据库后可查询(刷新将强制sql进入数据库)
编辑:Thx stefan评论隔离级别