gpt4 book ai didi

java - 何时在 Java EE 环境中打开/关闭 hibernate session

转载 作者:行者123 更新时间:2023-11-29 06:09:21 25 4
gpt4 key购买 nike

在 http 请求开始时打开并在结束时关闭,每个 http 请求都在单独的线程中处理?

也许将所有 session 保存在一个 HashMap 中并静态访问它?

任何解释 hibernate session 如何工作(或它们到底是什么)的信息都是有帮助的。

最佳答案

如果在请求开始/请求结束时表示 http 请求,那么这通常由 servlet 过滤器完成,它会为您打开/关闭 session 。这种设计模式称为 OpenSessionInView (Filter)。可以获取详情here .

仅当您的应用程序在存在 Hibernate Session 的同一 JVM 中呈现时,此模式才有用。如果您的数据访问层驻留在与 View 呈现层不同的 JVM 上,则您必须(急切地)在分派(dispatch) View 呈现请求之前获取所有必需的模型 bean。

如果您使用的是 spring(或 EJB3),您可以将 session (EntityManager) 注入(inject)到您的数据访问类中,这样您就不需要手动打开和关闭 session 。

理想情况下,您不需要手动打开/关闭 session /事务(因为它可能会遗漏 session.close() 或 tx.commit() 等)。而是使用容器提供的 JPA entitymanager 或使用 spring 为您管理它。

关于java - 何时在 Java EE 环境中打开/关闭 hibernate session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7490898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com