无需交易即可获取数据

下面是带有spring事务的示例代码片段。 我的问题: – 是否会使用相同的会话来获取第1行和第2行的实体?

我的理解: – 我相信是的,春季交易将确保这一点

@Transactional() public void method1( //fetch entity1 from dao with the help of entity manager//line 1 // fetch entity2 from dao with the help of entity manager//line 2 // now I fetch thru method entity.fetchLazyField()// line 3 ) 

现在,如果我删除@Transactional() 。 我相信一旦获取entity1就会关闭会话,并且将为line2使用单独的会话。 对 ?

在第3行(一旦@Transactional被删除),我是否能够获取数据或会话被关闭应该抛出exception?

我没有粘贴大的xml配置和完整的dao代码,只是用实体管理器获取etity。 事务传播属性是Required

是否会使用相同的会话来获取第1行和第2行的实体?

是的,你是对的(假设你没有使用PersistenceContextType.EXTENDED )

现在,如果我删除@Transactional()。 我相信一旦获取entity1就会关闭会话,并且将为line2使用单独的会话。 对 ?

我不这么认为,但检查一下 这个 。