【发布时间】:2018-01-17 09:16:33
【问题描述】:
我对在业务/服务层使用@Transactional注解有点不清楚。
我的问题是,当在业务层与 ISOLATION_SERIALIZABLE 一起使用时,@Transactional 注释是否保证不允许对特定方法进行并发访问?
@Transactional(isolation = Isolation.SERIALIZABLE)
public void businessMethod() {
// calls subBusinessMethod
subBusinessMethod();
---------------
---------------
---------------
}
想象subBusinessMethod 调用 DAO 层来执行一些数据库事务。调用subBusinessMethod 之后的代码执行(可能更多的db 调用)取决于subBusinessMethod 中发生的db 事务的结果。
我需要确保对businessMethod 的后续调用不应该调用 dao 层来读取/写入数据库,而不知道之前调用的 db 表发生了什么。业务逻辑中添加了必需的验证。
首先,我的方法有效吗?如果是这样,我是否以正确的方式使用它。 ?
【问题讨论】:
标签: java spring hibernate transactions transactional