【发布时间】:2018-01-19 15:51:16
【问题描述】:
我在 Spring 服务中存在持久性问题。一个 Rest-Controller R 接收一个请求,并通过一些代码层通过复杂的方式调用一个服务 S。 S中的service方法声明了一个事务;这应该是第一次开始交易。 但是该服务的行为就像之前已经启动的事务一样,并且我的一些数据对象将成为会话的一部分(它们一定不能)。 如何确定交易是否已处于活动状态?我试图注入 EntityManager 和/或 JpaTransactionManager;但两者似乎都无济于事。
如何查看我是否在交易中?
在我通过所有这些层寻找可能的嫌疑人之前,我想确定这一点。
【问题讨论】:
-
没有直接回答您的问题,但听起来您像我们一样成为 Open Session In View (OSIV) 的受害者。默认情况下启用(出于历史原因)。查看another thread in StackOverflow了解更多详情。
标签: java spring transactions spring-data-jpa