use*_*643 2 oracle spring hibernate transactions
有没有什么好的理由可以解释为什么人们不会在代码中进行交易管理?
当我提起春天/冬眠时,与一个非常紧张的dba交谈时出现了这个问题.我提到Spring可以处理事务,使用Hibernate映射表到对象等,并且问题出现了数据库(Oracle10g)已经处理事务管理,因此我们应该使用它.他甚至提出我们创建一堆数据库过程来进行插入/更新的想法,这样数据库可以更有效地处理事情,返回0/1是否插入/更新有效.
有没有充分的理由不让您的申请处理任何交易?我的dba是否一无所知?我在想他是,但是当我不确定答案时,我不是一位出色的演讲者...这就是为什么我要寻找答案的原因.
我觉得这里有一些误解.
关键是数据库不像Spring/Hibernate那样管理事务.
数据库通过提供事务行为来"管理事务",并且您的应用程序通过使用该行为和定义事务边界来"管理事务"(特别是在Spring或Hibernate的帮助下).
由于事务边界由业务逻辑定义,因此实现没有事务管理的应用程序将要求您将所有业务逻辑移动到数据库端.即使您将简单的插入/更新操作实现为存储过程,只要应用程序需要定义应在同一事务中执行多个插入/更新,仅从事务管理中释放应用程序是不够的.
| 归档时间: |
|
| 查看次数: |
125 次 |
| 最近记录: |