gpt4 book ai didi

java - Hibernate:是否可以在事务提交时自动清除 session ?

转载 作者:行者123 更新时间:2023-11-30 04:29:43 24 4
gpt4 key购买 nike

我有很多单独的函数,我必须在每个函数中对 transaction.commit() 执行 session.clear() 来释放内存。

我可能是错的,但我认为,hibernate 中的 session.clear() 默认情况下不会在 transaction.commit() 上调用。

我想知道是否有任何方法可以配置 hibernate 在每个 transaction.commit() 上执行自动 session 清除,而无需执行 session.clear()?

针对上述问题的任何其他解决方案将受到高度赞赏。

最佳答案

这称为每事务 session 模式:您在开始事务时创建一个 session ,并在提交后关闭它(请注意,清理 session 并提交事务与关闭 session 具有几乎相同的效果)一个 session ,特别是如果您使用连接池)。

如果在独立环境下使用Hibernate,则需要配置contextual sessions与 hibernate.current_session_context_class = 线程 。在这种情况下,上下文 session (通过 getCurrentSession() 获取)将在事务提交时自动关闭。

如果您使用EJB或Spring框架,则可以使用这些框架提供的事务管理工具。他们也支持这种模式。

关于java - Hibernate:是否可以在事务提交时自动清除 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14952311/

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