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

@事务性注释springboot不起作用

孔梓
2023-03-14

我正在使用MongoDB的springboot 2.3.0。@transactional注释对我不起作用。如果发生异常,则无法回滚事务

任何帮助都将得到高度赞赏。

我的控制器类:

@PostMapping(value = "/employee/{employeeId}")
public String createEmployee(@PathVariable(value = "employeeId") String employeeId, @RequestBody EmployeePayload payload) {
    
    employeeService.createEmployee(employeeId, payload);
    return "employee successfully added";
}

我的serviceImpl类

 @Override
 @Transactional(rollbackFor = {ArithmeticException.class})
 public void createEmployee(String employeeId, EmployeePayload payload) {   Employee employee = new Employee("1","Robert","24")
     Document mongoDocument = new Document();
     mongoTemplate.getConverter().write(employee, mongoDocument);
     getCollection("employee").insertOne(mongoDocument);                
     System.out.println(7/0); //To throw an exception
 }  

我的MongoConfig类

@Configuration public class MongoDBConfig {

    @Bean
    MongoTransactionManager transactionManager(MongoDatabaseFactory dbFactory) {
        return new MongoTransactionManager(dbFactory);
    } 
}

共有1个答案

华凯捷
2023-03-14

缺少@EnableTransactionManagement批注。

 类似资料:
  • 根据我的理解,在methodB()中,我们使用someManager保存一个对象,并调用另一个函数callToSomeOtherServer()。所以这是上层方法中事务的一部分。如果callToSomeOtherServer()失败并抛出someException,整个事务应该回滚,保存的对象不应该在DB中反映。 但这对我不起作用,对象反映在DB中。有人能帮忙让我明白为什么它不起作用吗?

  • 我正在尝试在数据库中保存对象。正在执行代码并创建实体的Id,但实体未持久化到数据库(未插入行): 从三行(beginTransation,flush,commit)中删除注释解决了问题,但是为什么注释在这里不起作用呢? spring XML: POM xml文件:

  • 我将Spring 3.2.4与JavaFX结合使用,并希望实现一种方法,其中操作将在事务中执行。我在控制器中的代码如下所示: 以及我的应用程序上下文: 尝试运行时,我收到以下错误消息: 该方法存在。删除注释,或者将方法从public更改为private,或者从配置中删除bean,程序就会运行,但事务注释根本不起作用。删除代理目标会导致另一个错误。

  • 我有一个简单的类叫BeaconDao 然而,当我用@service或@component标记beaconDao时,一切都运行得非常好。有人能看出问题所在吗?

  • 问题内容: 我正在尝试使用Java批注,但似乎无法使我的代码认识到其中存在。我究竟做错了什么? 问题答案: 您需要使用注释界面上的@Retention注释将注释指定为运行时注释。 即

  • 在我们的一个项目中,我们遇到了一个问题,Spring忽略了事务注释,然后失败了,出现了以下错误。 启动ApplicationContext时出错。要显示条件报告,请在启用“调试”的情况下重新运行应用程序。2018-09-13 15:05:18406错误[主]组织。springframework。靴子SpringApplication应用程序运行失败组织。springframework。道。Inva