【问题标题】:Is using Transaction management mandatory while performing operations with db in Spring Hibernate?在 Spring Hibernate 中使用 db 执行操作时是否必须使用事务管理?
【发布时间】:2013-06-17 14:20:14
【问题描述】:

我经历了 Spring 事务管理。我有一个非常简单的问题假设在具有 Spring Hibernate 集成的银行应用程序中是否必须在贷记和借记方法上使用 @Transactional。如果我不想回滚,我还必须将方法放在事务范围内吗?

【问题讨论】:

    标签: spring hibernate spring-mvc spring-transactions


    【解决方案1】:

    如果您从技术上询问 Hibernate 调用是否必须在事务中,答案是否定的。每个调用(更新、插入或删除)都将作为原子操作完成。函数返回后对数据库的请求就完成了。当数据库实际提交更改取决于 Hibernate、驱动程序和数据库本身。

    如果您询问是否应该将贷方或借方置于交易状态,答案取决于应用程序的要求。

    【讨论】:

    • 如果我不在借记方法上使用@Transactional 会发生什么?它还能正常执行吗?
    • 它会立即减去余额。数据库不理解借方或贷方之间的区别。它只是将它们视为更新声明。
    【解决方案2】:

    这取决于您如何处理借记卡和贷记卡。也许您可以向@Transactional 提供一些级别配置。如果您需要更灵活的事务,您可以选择程序化事务管理而不是声明式事务管理。就 Spring 而言,它不会以任何方式限制您,完全取决于您希望如何处理事务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-04
      • 2013-09-18
      • 1970-01-01
      • 2017-10-30
      • 2011-08-05
      • 1970-01-01
      • 2012-10-16
      相关资源
      最近更新 更多