有什么充分的理由可以解释为什么他们的代码中没有事务管理吗?
这个问题是在与一个 dba 交谈时出现的,当我提到 spring/hibernate 时他会非常紧张。我提到 Spring 可以处理事务,与 Hibernate 一起使用将表映射到对象等,问题是数据库 (Oracle10g) 已经处理事务管理,所以我们应该只使用它。他甚至提出了我们创建一堆 DB 过程来执行插入/更新的想法,以便数据库可以更有效地处理事情,返回 0/1 来判断插入/更新是否有效。
是否有充分的理由不让您的应用程序处理任何事务?我的dba无能为力吗?我想他是,但当我不确定答案时,我不是一个很好的演讲者……这就是为什么我要出去寻找答案。
最佳答案
我觉得这里有一些误会。
重点是数据库不像 Spring/Hibernate 那样管理事务。
数据库通过提供事务行为来“管理事务”,而您的应用程序通过使用该行为和定义事务边界(特别是在 Spring 或 Hibernate 的帮助下)来“管理事务”。
由于事务的边界是由业务逻辑定义的,因此在没有事务管理的情况下实现应用程序需要您将所有业务逻辑移至数据库端。即使您将简单的插入/更新操作实现为存储过程,也不足以将应用程序从事务管理中解放出来,只要应用程序需要定义应在同一事务中执行多个插入/更新操作即可。
关于oracle - 是否有充分的理由不让您的应用程序处理任何交易?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6203537/