首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring 3.0:抛出异常时未提交SQL

问Spring 3.0:抛出异常时未提交SQL
EN

Stack Overflow用户
提问于 2011-03-10 18:35:33
回答 3查看 126关注 0票数 0

我正在开发一个Java -Spring3.0- Hibernate注解应用程序。

一切正常,直到我切换到另一台MySQL数据库服务器。

在第一个示例中,当抛出异常时,提交SQL并将其保存到数据库中。(这就是我想要的)。

在第二个MySQL服务器(新服务器)中,当抛出异常时,所有数据库更新都会丢失。

我能做错什么呢?异常时提交不是应用程序特性(与db特性相反)吗?为什么MySQL服务器“知道”在所有这些SQL之后抛出了异常?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-10 19:57:41

我不知道每一个mysql存储引擎。但是,无法在所有引擎中执行提交和回滚。InnoDB存储引擎支持这些操作。

票数 3
EN

Stack Overflow用户

发布于 2011-03-10 19:57:48

您的应用程序代码似乎无意中依赖于与之对话的数据库服务器的默认自动提交行为。异常的事务行为是一个复杂的主题,它可能是偶然的而不是设计的。

考虑到这是一个暴露bug并修复它的理想机会,因为现在您有了可重现的测试用例。

票数 1
EN

Stack Overflow用户

发布于 2011-03-10 21:02:32

有点尴尬,但问题是,在我的第一个服务器中,myisam (即非事务性)的所有表,这就是“事务”不被回滚的原因(即根本不能回滚任何事务)。

一旦我移动到新的服务器,我发现了这个bug,并在我的上下文文件中正确地配置了no-rollback-for属性,现在一切都正常了。

我把这个编程叫做

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5258442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档