JPA EntityManager会话生命周期关闭事件

时间:2013-07-09 19:55:04

标签: spring hibernate jpa

当使用JPA的Hibernate实现并使用Spring数据源管理这些资源时,EntityManager会话何时关闭?例如,我有以下基本模式,其中Spring服务层调用Spring DAO层(@repository)。 DAO存储库自动装配PersistentContext的EntityManager并执行数据库操作。我的问题是,在getData服务方法完成后,EntityManager会话何时关闭?我正在问这个问题,因为我正在试图看看hibernate L1缓存将会存在多长时间,因为它直接与EntityManager会话相关...

@Service
public class TestService{
@Autowired
private dataDAO;
@Transaction
public List getData(Long id){
    return dataDAO.getDate(id);
}
}

1 个答案:

答案 0 :(得分:3)

默认情况下,spring在事务结束时释放会话。在这种情况下,会话将在getData方法结束时发布。第一级缓存(L1)绑定到实际事务,并在事务终止后立即清除。

相关问题