我对交易中的交易和查询存有疑问。 目前我正在使用PostgreSQL 8.4和Hibernate。
我不知道是否可以获取最近在事务中插入的数据 如果我在同一个交易中执行查询。
例如。
Begin Transaction();
Save(A);
Get(A);
End Transaction();
查询是否会返回最近保存的行?
答案 0 :(得分:2)
是的,它会的。事务上下文使得数据对其他数据库事务不可见,直到此事务被调用。
如果您正在使用Hibernate,则由于会话缓存(缓存),save()调用不会将对象写入数据库。但连续的get()会将会话缓存刷新到数据库,然后返回最近创建的对象。
答案 1 :(得分:0)
是的,无论是否将数据保存在数据库中,您都将从会话缓存中获取数据。