以下是带有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
一次),我是否能够获取数据或会话被关闭异常应该被抛出?
我没有粘贴大的xml配置并完成dao代码,只需用实体管理器获取etity。事务传播属性为Required
答案 0 :(得分:1)
同一会话是否用于获取第1行和第2行的实体?
是的,你是对的(假设你不使用PersistenceContextType.EXTENDED)
现在,如果我删除@Transactional()。我相信会议将被关闭 一旦获取了entity1,将使用单独的会话 2号线。对吗?