java - 使用 MyBatis 和 Spring 进行具有请求范围的事务

标签 java spring mybatis

有没有一种方法可以使用 SpringMVC 设置 MyBatis,以便对整个 http 请求进行一个事务处理?通常在 MyBatis 中有类似 Hibernate OpenSessionInViewFilter 的东西,还是我应该编写自己的过滤器来实现这种行为?

最佳答案

您对“ session ”和“事务”的概念感到困惑。 OSIV 开启 session ,在一个 session 中多个事务可能并存。通常你应该把 @Transactional 属性放到 Controller 使用的服务中,这取决于你的业务需求。

此外,对所有事物的一次大交易是一种反模式。理想情况下是为用户的操作创建一个读写事务,然后另一个只读事务为用户构建响应。它节省了资源,因为为插入/更新获取的数据库锁会提前释放。

关于java - 使用 MyBatis 和 Spring 进行具有请求范围的事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10888861/

相关文章:

java - Spring Boot csrf 过滤器

java - Camunda 数据库连接关闭但被 camunda 引擎选中

spring - 重用自定义 JSP 标记

java - MyBatis-guice 3.3 + 多数据源 + 属性 + scriptrunner

java - 如何将 Vector 输出到 JFrame 中的 JTextArea 中?

java - 在不使用 Java 中的距离公式的情况下查找相对于对象的最近点

java - 不可变对象(immutable对象)和不可修改集合

java - OutOfMemoryError : Java heap space: Trying to convert a ~5. 700万条记录数据集

java - 获取删除触发器的当前用户 - Spring MyBatis - Liquibase

jdbc - 在ibatis中获取批量插入/更新的更新计数