gpt4 book ai didi

Grails 中的 hibernate session 范围

转载 作者:行者123 更新时间:2023-12-02 14:25:19 25 4
gpt4 key购买 nike

我的问题是关于 Grails 中的 hibernate session 范围:

  • session 是否绑定(bind)到 Spring 事务?
  • 每当创建新请求时都会创建一个新 session ?
  • 还是 session 绑定(bind)到一个线程?

  • 这可以解释吗?

    谢谢

    最佳答案

    session 绑定(bind)到事务,因为事件 PlatformTransactionManagerHibernateTransactionManager .但请注意, Controller 请求不会在事务中运行——只有服务是自动事务的。您应该重构写入数据库的 Controller 以使用服务来完成这项工作,因此它是正确的事务性的。

    为每个请求创建一个新 session ,并由 GrailsOpenSessionInViewInterceptor 绑定(bind)到线程。 .这有助于避免延迟加载异常和其他问题。 session 在线程结束时刷新并关闭。
    ThreadLocalTransactionSynchronizationManager如果你很好奇;您可以调用TransactionSynchronizationManager.getResource(sessionFactory) (使用 def sessionFactory 访问 SessionFactory )访问 SessionHolder举行 session 。

    关于Grails 中的 hibernate session 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16774884/

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