oracle - 是否有充分的理由不让您的应用程序处理任何交易?

标签 oracle hibernate spring transactions

有什么充分的理由可以解释为什么他们的代码中没有事务管理吗?

这个问题是在与一个 dba 交谈时出现的,当我提到 spring/hibernate 时他会非常紧张。我提到 Spring 可以处理事务,与 Hibernate 一起使用将表映射到对象等,问题是数据库 (Oracle10g) 已经处理事务管理,所以我们应该只使用它。他甚至提出了我们创建一堆 DB 过程来执行插入/更新的想法,以便数据库可以更有效地处理事情,返回 0/1 来判断插入/更新是否有效。

是否有充分的理由不让您的应用程序处理任何事务?我的dba无能为力吗?我想他是,但当我不确定答案时,我不是一个很好的演讲者……这就是为什么我要出去寻找答案。

最佳答案

我觉得这里有一些误会。

重点是数据库不像 Spring/Hibernate 那样管理事务。

数据库通过提供事务行为来“管理事务”,而您的应用程序通过使用该行为和定义事务边界(特别是在 Spring 或 Hibernate 的帮助下)来“管理事务”。

由于事务的边界是由业务逻辑定义的,因此在没有事务管理的情况下实现应用程序需要您将所有业务逻辑移至数据库端。即使您将简单的插入/更新操作实现为存储过程,也不足以将应用程序从事务管理中解放出来,只要应用程序需要定义应在同一事务中执行多个插入/更新操作即可。

关于oracle - 是否有充分的理由不让您的应用程序处理任何交易?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6203537/

相关文章:

java - 如何防止 Hibernate + c3p0 + MySql 创建大量 hibernate 连接?

java - JSF 2 viewScope bean 瞬时注入(inject) Spring 服务 bean

java - Spring security 4.x 登录重定向到 '.../favicon' 而不是预期的 URL

java - 为什么 SQL Developer 不接受 JDK?

sql - 与 CLOB 一起使用的类似 UTL_MATCH 的函数

Oracle Reports 在电子表格输出中将列拆分为额外行

Spring 集成 HTTP 到 Scatter Gather

c# - 错误映射数据类型 Oracle 和 C#

java - 在 hibernate 中插入大量记录的最佳方法

hibernate - 在hibernate中,如何利用数据库时间?