当前位置: 首页 > 知识库问答 >
问题:

Spring Boot JPA:@Transactional annotation:回滚不起作用

鲁宏爽
2023-03-14

我使用@Transactional与Spring引导和jpa。但它不起作用。有人能帮忙吗?

我的插件在myDAO中,它是在服务类中自动生成的。下面的代码是实现服务接口的服务类的方法

class MyService implements Service {

@Transactional(rollbackFor = RuntimeException.class)
    public ResponseVO createOrder(params) {
    myDAO.insertInTable1(param);
    myDAO.insertInTable2(param);//I kept wrong table name in this query such that it throws exception
         }

 }

共有1个答案

公冶翰池
2023-03-14

问题在于MySQL数据库引擎。我的引擎是MYIsam,它不支持事务。我把我的数据库引擎改成了InnoDB,它可以工作了。谢谢你的贡献。下面是对相同问题的查询。

从信息_schema.TABLES中选择引擎,其中TABLE_NAME='tabel_NAME'和TABLE_schema='db_NAME';

修改表table_nameENGINE=INNODB;

 类似资料:
  • 问题内容: 我有一个MySQL数据库,正在使用。 由于某些原因,我无法使事务正常运行。如果我打电话,它不会回滚。 示例代码: 结果是将另一行添加到myTable。谁能想到一个原因? 问题答案: 您使用的是myIsam还是innodb?据我所知,它仅适用于innodb

  • public void A()抛出ApplicationException{ } 这是方法B(): } 显然,如果删除方法B()中的catch块,就不会出现这种行为。现在,我想知道是否有一种方法可以回滚我的事务,即使我捕捉到方法B()中的异常。谢谢!!!!

  • 我试图在一个基于spring的项目中创建记录器策略。 我面临的问题与滚动政策有关。已创建logfile.log并且工作正常,但未创建滚动文件rollingfile.log.%d{yyyy-MM-dd}.log。

  • 在spring boot中,我试图创建我的第一个事务性测试,但trasaction不起作用。 null 我需要的是: 将数据插入事务。 从事务中读取数据。 测试返回的数据。 回滚事务。

  • 问题内容: 我正在尝试使用Spring测试实体EJB3。 EJB本身不使用Spring,并且我想使生产JPA配置的重复保持最少(例如,不重复persistence.xml)。 我的单元测试似乎可以正常工作,但是即使我的单元测试应该是事务性的,数据仍会在各种测试方法之间持久存在…… 这是我的实体: 我的单元测试: 和我的appContext.xml: 当我运行测试时,test2失败,因为它找到了两个

  • 我是LiquiBase的新手。我可以使用LiquiBase更新(具有创建表的变更集)到Oracle数据库。在进行更新时,我还创建了标记。但是当我尝试回滚更新的更改(即删除创建的表)时,使用该标记。桌子没有掉下来。 我使用的是liquibase-maven插件3.4.2。下面是Maven中的代码。 请帮我解决这些问题。