[英]@Transactional annotation is not working springboot
我正在使用帶有 mongodb 的 springboot 2.3.0。 @Transactional
注釋對我不起作用。 如果出現任何異常,它無法回滾事務。 ps:使用 mongoTemplate 它正在工作。
任何幫助將不勝感激。
我的 controller class:
@PostMapping(value = "/employee/{employeeId}")
public String createEmployee(@PathVariable(value = "employeeId") String employeeId, @RequestBody EmployeePayload payload) {
employeeService.createEmployee(employeeId, payload);
return "employee successfully added";
}
我的服務Impl class
@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); MongoDatabaseFactory mongoDatabaseFactory = new SimpleMongoClientDatabaseFactory(properties.getUri() + properties.getDataBase() + properties.getDbFilter()); MongoDatabaseUtils.getDatabase(properties.getDataBase(), mongoDatabaseFactory).getCollection("employee").insertOne(mongoDocument); System.out.println(7 / 0); //To throw an exception }
我的 MongoConfig class
@Configuration public class MongoDBConfig {
@Bean
MongoTransactionManager transactionManager(MongoDatabaseFactory dbFactory) {
return new MongoTransactionManager(dbFactory);
}
}
您缺少@EnableTransactionManagement注釋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.