交易是在服务级别定义的,这很典型。
但有时我们有一个 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/