spring - 通过 spring 注释进行的交易 - 只读与否?

我的项目代码中有类似这样的

@Transactional(readOnly = true)
public void tt() {
    dd();
}

@Transactional()
public void dd() {
    gg();
}

@Transactional(readOnly = true)
public void gg() {

}

函数 dd 被其他只读事务函数使用,而不被只读函数使用。假设事务应该从 tt 的执行扩展到 gg - dd 中的操作是否是只读事务?

最佳答案

在这个特定示例中,您的问题没有实际意义。

tt()dd() 的调用不会通过代理边界,因此不会对 dd() 应用事务建议>(因为它是同一实例内的调用)。与从 dd() 调用 gg() 相同。因此,只有从外部调用 tt() 实际上是事务建议的(在您的情况下,使用 readOnly=true),这将是事务在整个调用链中使用。

但在一般情况下,请阅读@melihcelik 提示的文档 - 它解释了行为。

https://stackoverflow.com/questions/8257751/

相关文章:

php - php脚本可以打印回他们的文件名吗?

assembly - 为什么我们必须清理堆栈

php - 你如何使 preg_replace 捕获大写 (php)?

cuda - GPU Gems 3 的并行前缀算法中使用的 CONFLICT_FREE_OFFSET

objective-c - 如何将 32 位 PNG 转换为 RGB565?

ruby-on-rails - 如何在 Ruby 中将数组的数组从字符串转换为 float ?

php - 如何在 codeigniter form_validation 类中允许空值或数值?

asp.net-mvc - 在 Razor 模板引擎上打印可空类型

architecture - Java中的模块、插件和组件有什么区别?

assembly - 如何正确结束 assembly ?