Java 无事务获取数据
下面是spring事务的示例代码段。我的问题:-在第1行和第2行提取实体时是否会使用相同的会话 我的理解:-我相信是的,这将通过spring交易得到保证Java 无事务获取数据,java,spring,hibernate,jpa,transactions,Java,Spring,Hibernate,Jpa,Transactions,下面是spring事务的示例代码段。我的问题:-在第1行和第2行提取实体时是否会使用相同的会话 我的理解:-我相信是的,这将通过spring交易得到保证 @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 mana
@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,会话将立即关闭,第2行将使用单独的会话。对吧?
在第3行(删除@Transactional
后),我是否能够获取数据或会话已关闭?是否应引发异常
我没有粘贴大的xml配置和完整的dao代码,它们只是通过实体管理器获取etity。事务传播属性是必需的
在第1行和第2行提取实体时是否会使用相同的会话
是的,你是对的(假设你是而不是使用)
现在,如果我删除@Transactional()。我相信本届会议将如期结束
获取entity1后,将立即为其使用单独的会话
第二行。对吧?
我不这么认为,但请检查和。对于第一部分,我相信
PersistenceContextType.EXTENDED
更广泛,它意味着实体管理器(内部会话)可以经受多次请求。关于第二点,从你们提到的链接中还不清楚会议是否会结束?从M.Denim的回答来看,似乎可以有单独的会议(正如他提到的会议排水),但没有提到会议何时结束?我的理解是,您的陈述是正确的。