Java H2不';如果没有事务,则不更新行

Java H2不';如果没有事务,则不更新行,java,spring,testing,h2,Java,Spring,Testing,H2,我在服务器模式下启动H2,并运行非常简单的Spock测试: 启动Spring应用程序上下文 更新字段A 检查字段A值 我发现如果事务未打开,H2不会更新字段值。这是正确的行为吗?是的。。。如果能够在没有事务(或危险)的情况下在数据库中持久化某些内容,那将是很奇怪的。为什么要为单个更新打开事务?2.它不同于PostgreSQL/MySQL行为-我不能确定在我的testsCan中您是否发布了在PostgreSQL或MySQL上工作、在H2上失败的代码?MySQL可以或不能支持事务,具体取决于表类型(

我在服务器模式下启动
H2
,并运行非常简单的
Spock
测试:

  • 启动Spring应用程序上下文
  • 更新字段
    A
  • 检查字段
    A

  • 我发现如果事务未打开,
    H2
    不会更新字段值。这是正确的行为吗?

    是的。。。如果能够在没有事务(或危险)的情况下在数据库中持久化某些内容,那将是很奇怪的。为什么要为单个更新打开事务?2.它不同于PostgreSQL/MySQL行为-我不能确定在我的testsCan中您是否发布了在PostgreSQL或MySQL上工作、在H2上失败的代码?MySQL可以或不能支持事务,具体取决于表类型(MyISAM表不支持事务)。根据您的配置,您可能有自动提交功能。此外,无论执行多少条语句,您都应该始终拥有事务,现在可能只有一条,但最终可能会有多条,并且您不希望错误地忘记一个事务。