查询内部事务

时间:2013-02-11 21:29:42

标签: hibernate postgresql-8.4

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

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

例如。

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

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

2 个答案:

答案 0 :(得分:2)

是的,它会的。事务上下文使得数据对其他数据库事务不可见,直到此事务被调用。

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

答案 1 :(得分:0)

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