当前位置: 首页 > 知识库问答 >
问题:

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

戚升
2023-03-14

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

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

共有1个答案

盛跃
2023-03-14

默认情况下,spring在事务结束时释放会话。在本例中,会话将在getData方法结束时释放。第一级高速缓存(L1)绑定到实际事务,并且一旦事务终止就被清除。

 类似资料:
  • 问题内容: 在Spring下如何适当地完成Hibernate会话的“生命周期”? 该由Spring自动创建并从Glassfish的连接池利用其数据库连接。目前,我正在通过进行Hibernate会话。然后,我开始交易,完成工作,然后或结束。我需要做任何其他操作,如,,在任何时间或任何其他人,以便连接将被适当地返回到游泳池或就是一切已经自动春天呢? 有了很多这样的方法,这让我眼前一亮,无法理解应该何时

  • 生命周期事件 There are two module lifecycle events OnModuleInit and OnModuleDestroy. You should use them for all the initialization stuff and avoid to work in the constructor. The constructor should only be

  • 要了解Spring事件是否适合我正在处理的任务,我需要了解它们是如何工作的,它们存储在哪里?因为我可以猜测它们存储在Spring应用程序上下文中,如果应用程序崩溃则会消失,我的猜测正确吗?

  • 我从这里的开发指南中读到了android活动的生命周期。现在我混淆了哪部分代码驻留在哪种方法中,比如onCreate、onStart、onResume、onRestart、onPause、onResume、onStop和OnDestroy。你能帮我把它们放在正确的地方吗。而且,即使应用程序最小化,跟踪也应该继续。我有以下代码。 }

  • 除了在上一节说到的4个函数,还有2个函数只用于处理单个线程的启动和关闭,他们只作用于线程环境。 首先,建立一个基本扩展,根据你PHP源码树使用下面几个源文件。 config.m4 PHP_ARG_ENABLE(sample4, [Whether to enable the "sample4" extension], [ enable-sample4 Enable "sample4"

  • 注:本文档提供的生命周期指的是 Universal App 的生命周期,它依赖 rax-app 提供的 runApp方法。 App 级生命周期 launch  在 App 启动时触发 使用生命周期 你可以使用 rax-app 提供的 useAppLaunch 来注册 App 级别的生命周期。 示例: import { useAppLaunch } from 'rax-app'; useAppLa