gpt4 book ai didi

java - 两个@Transactional 是否在一个(相同的) hibernate session 中执行?

转载 作者:行者123 更新时间:2023-11-30 09:08:49 25 4
gpt4 key购买 nike

我有两个方法,它们都是注解的@Transactional。

我知道这两个方法将在两个不同的事务中执行。

但这两个方法是在一个 hibernate session 中执行的吗?

spring 事务管理器会一直保持 session 直到 http 请求结束吗?

我知道事务管理器可能会在它的 aop 代理中做这样的事情:

 Session session=sessionFactory.openSession/getCurrentSession;
Transaction tx=session.beginTransaction();
...
tx.commit();

我只是找不到代码,如果我能在某个地方找到代码,我可以自己回答这个问题。

最佳答案

spring transaction manager keeps will the session on until the end of the http request?

不,不会的。事务管理器对 http 请求一无所知,它只知道事务的开始和结束(线程绑定(bind))。 Session 将在事务结束后立即销毁和清理。

也就是说,除非您使用 OpenSessionInViewFilter(或拦截器),否则 Session 将保持打开状态,直到请求被处理。

关于java - 两个@Transactional 是否在一个(相同的) hibernate session 中执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23338875/

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