繁体   English   中英

使用SpringBoot处理事务隔离级别

Dealing with Transaction isolation level using SpringBoot

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在使用Spring-Boot应用程序并使用Spring Boot版本1.5.9。

我有一个包含一组数据库插入的付款转移方法,并且我想使其具有锁定的事务性以避免双重支出。 所以我需要将隔离级别设置为Serializable。 这就是我所做的:

@Transactional(isolation = Isolation.SERIALIZABLE)
public void transfer() {
...
}

问题是调用此方法时出现以下异常:

{
    "timestamp": 1539357851437,
    "status": 500,
    "error": "Internal Server Error",
    "exception": "org.springframework.transaction.InvalidIsolationLevelException",
    "message": "JtaTransactionManager does not support custom isolation levels by default - switch 'allowCustomIsolationLevels' to 'true'",
    "path": "app/transfer"
}

我一般都不是Spring的新手,SpringBoot似乎没有XML配置,可以重写以将JtaTransactionManager bean的allowCustomIsolationLevels设置为true。 但是相反,我应该使用Java批注和@Bean定义,并且我不确定如何实现此目标。

任何帮助将不胜感激!

1 个回复

如果您想使用XML文件进行配置,请在具有@SprintBootApplication批注的主类中添加以下内容:

@ImportResource("classpath:/static/context/name-of-context-file.xml")

它将从路径(其中根是项目中的资源目录)导入XML文件。

根据我在Spring文档中的了解 ,您可能希望研究使用DataSourceTransactionManager还是使用XML文件(如我提到的那样),因为根据该文档(与错误消息状态非常相似,但至少可以选择使用设置)

JTA不支持自定义隔离级别。

我知道我链接的页面很长,但是如果您只是在页面上查找“自定义隔离”,它将其缩小为三个选项,其中两个彼此相邻。

希望这可以帮助。

2 SpringBoot 事务隔离级别

我有这个项目试图检查事务隔离。 我从 READ_UNCOMMITTED 级别开始,但它不起作用。 代码非常简单。 主要类 控制器 服务 Repository 是一个简单的 SpringData 存储库 应用程序属性 基本上我在 Chrome 中打开 2 个标签并访问 upda ...

4 如何使用@TransactionTimeout 处理事务超时

我确实有方法: 如您所见,我在 Transaction 中运行它,超时设置为 1 秒,在里面我有 3 秒的睡眠时间。 因此,由于运行此方法,我开始: 但是假设我想实现一个服务,该服务将向用户打印事务超时发生的信息。 我怎么能做到这一点? @Glains 在评论中给了我一些使用拦截器的建议 ...

5 如何使用SQLite和Android处理事务?

我尝试将事务包含在我的应用程序中,因为在数据库中写入速度非常慢,我在这里和这里都看到了事务是一种解决方案,但它们仍然使我感到困惑。 我有包含对象LineStation Schedule对象,并且我想使用事务在数据库中写入它们。 在这里,我的类ScheduleDAO的方法addSche ...

6 如何使用Spring Data JPA处理事务?

我即将开始创建一个新的应用程序,并希望得到一些关于我计划使用的方法的反馈。 我们将使用弹簧和弹簧数据jpa。 控制器可以调用域服务和存储库,还是控制器只能调用应用程序和基础结构服务? 如果从控制器和域服务操作调用域服务和存储库的“确定”需要事务,我可以/应该只在域服务方法上放 ...

7 使用SQLAlchemy处理事务冲突

我对数据库比较陌生。 我确定这是经验会回答的问题。 我在PostgreSQL中使用SQLAlchemy。 我有一个系统设置,其中分布在多台计算机上的多个进程执行各种任务,然后更新数据库。 在测试中,我还没有遇到任何交易冲突,但是从理论上讲,它们仍然是可能的。 从我在Google ...

8 使用UnitOfWork和EF处理事务

我正在使用Entity Framework 5.0和MVC4。 我有几个领域。 它们每个都有自己的DbContext(使用适当的表),存储库和服务。 我还实现了UnitOfWork。 在特定领域的一种服务内处理事务中的特定流很简单。 我正在对表进行一些操作,最后我调用的是UnitO ...

9 如何在基于 Spring Boot 的微服务中处理事务,

例如,用户在订购服务上订购了一些东西 由订单服务处理的请求然后到 -> 带有订单 ID 和付款详细信息的付款服务和付款服务通过接受付款来完成交易。 在这种情况下如何处理事务的快乐路径: 1. 以同步方式如何处理事务 2. 在异步中,如果请求移交给消息代理,该事务将如何处理,以及如何处理延迟 ...

10 Spring HibernateTemplate:它如何处理事务?

你能解释一下,幕后发生了什么? 在Spring中使用此模板时的事务管理绝对不清楚。 如果我调用所有使用相同Hibernatetemplate的10个DAO方法并且我一个接一个地调用它们怎么办? 每个方法都在自己的事务中运行? 这不是有效的不是吗? ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM