【问题标题】:@transactional(readonly = true) Vs @transaction in Hibernate@transactional(readonly = true) 与 Hibernate 中的 @transaction
【发布时间】:2020-05-16 18:41:13
【问题描述】:

我知道@transaction 和@transaction(readOnly=true) 背后的用途和基本理解。

但在我的项目中,在一项服务中,我使用了@transaction(readOnly=true) -->> 它执行所有 CRUD 操作。在我的另一项服务中,它不允许我更新表格。我必须删除“readOnly=true”。

我只是不明白它是如何允许在一项服务中执行所有操作而在其他服务中不允许的。我对这个概念的基本理解有什么遗漏吗?

【问题讨论】:

    标签: hibernate spring-mvc spring-transactions


    【解决方案1】:

    这只是一个提示。readOnly 参数不能保证它的行为,只是一个可能会或可能不会考虑的提示。Source
    这只是作为实际事务子系统的提示;它不一定会导致写访问尝试失败。无法解释只读提示的事务管理器在请求只读事务时不会抛出异常,而是默默地忽略提示。
    它与传播设置密切相关。例如:对于 SUPPORT,永远不会使用 readOnly 标志;对于 REQUIRES_NEW 总是;对于 REQUIRED 取决于我们是否已经在事务上下文中,等等。

    【讨论】:

    • 感谢您回复查询。这对我对此有基本的了解非常有帮助。
    猜你喜欢
    • 2017-06-06
    • 1970-01-01
    • 2017-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多