我在Hibernate中有一些简单的查询。
如果我假设有两个实例正在运行,并且每个实例都在使用自己的hibernate会话。如果一个会话将数据插入数据库并且第二个会话尝试检索新数据,它是否能够获取该数据?
我已将主键设置为由DB序列生成。 所以我创建一个实例并调用save()但不提交事务。我仍然能够获得该实例的ID。那个时候是否正在进行数据库调用,或者hibernate如何维护其会话?
答案 0 :(得分:2)
是的,一旦数据提交给DB;这取决于交易中配置的isolation level
是的,它将类似于select nextval('MY_SEQUENCE');
这将是为实体设置的ID;所以,即使交易尚未提交,您也有一个ID。
This article值得一读。