3

事务是在服务级别定义的,这是典型的。

但有时我们有一个 DAO 方法,它需要更高的、可序列化的隔离级别。

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

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

4

1 回答 1

1

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

但是……可以在DAO实现方法上添加如下注解实现可序列化隔离级别,达到效果:

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

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

让我知道它是如何工作的。

于 2011-04-22T14:17:24.533 回答