1

我对交易中的交易和查询有疑问。目前我正在使用带有 Hibernate 的 PostgreSQL 8.4。

如果我在同一个事务中执行查询,我不知道是否可以获得最近插入到事务中的数据。

例如。

Begin Transaction();
       Save(A);
       Get(A);
End Transaction();

查询会返回最近保存的行吗?

4

2 回答 2

2

是的,它会的。事务上下文使数据对其他数据库事务不可见,直到该事务被提交。

如果您使用的是 Hibernate,save() 调用不会因为会话缓存(缓存)立即将对象写入数据库。但是连续的 get() 会将会话缓存刷新到数据库,然后返回最近创建的对象。

于 2013-02-11T22:09:12.563 回答
0

是的,无论是否将其保存在数据库中,您都将从会话缓存中获取数据。

于 2013-02-12T13:45:06.227 回答