java - Spring & JDBC 事务 : How to ensure isolation level SERIALIZABLE in a DAO object?

标签 java spring transactions isolation-level

交易是在服务级别定义的,这很典型。

但有时我们有一个 DAO 方法需要更高的、可串行化的隔离级别。

但是是否需要SERIALIZABLE隔离级别的知识封装在DAO方法中,服务方法不需要知道这一点。

如何在 DAO 方法级别强制执行 SERIALIZABLE 隔离级别?我什至找不到一种方法来识别 什么 Spring 中的隔离级别。

最佳答案

服务层通常定义事务语义。

但是...您可以添加 following annotation在DAO实现方法上实现serializable隔离级别达到效果:

@Transactional(isolation=Isolation.SERIALIZABLE,propagation=Propagation.MANDATORY)

MANDATORY 是为了让 DAO 方法在不存在事务时不会创建事务。这将强制所有调用从服务方法开始。如果需要,您可以更改它。

告诉我结果如何。

关于java - Spring & JDBC 事务 : How to ensure isolation level SERIALIZABLE in a DAO object?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5756214/

相关文章:

java - 如果我们创建一个子类的对象,会不会有父类的对象创建?

java - 将 bean 注入(inject)到 GraphQL 的 DataFetcher 中

Java Web 应用程序调用不同的其他 Java 应用程序(工作线程)

sql-server - 判断事务是否有未提交的更新

Java:我可以在程序中运行给定的方法而不从 main 调用吗?

java - Java包和/或文件结构编译问题

java - 对象数组的空指针异常

java - Spring Security - 使用自定义数据库授权和 Auth0 预身份验证

java - 如何回滚第一个事务而不回滚新事务?

ruby-on-rails - Rails 的新记录?如果事务回滚则不重置(为真)