Я попытался сделать откат после того, как некоторые функции с @Transational работали
Откат работает, когда они являются ошибками из-за sql, и это фиксирует.
Контроллер
@RestController
@RequestMapping()
@Slf4j
@AllArgsConstructor
public class Controller {
private final MyServiceImpl myService;
@PostMapping("/truc")
public void truc() {
Entity ent = new Entity();
myService.createEntity(ent);
Entity2 ent2 = new Entity2();
myService.createEntity2(ent2);
boolean b = {some conditions};
if(b){
//to do flush
}
else{
//to do rollback to get initial state before createEntity()
}
}
}
MyServiceImpl
@Transactional
@Slf4j
@AllArgsConstructor
public class SiteServiceImpl {
//Repositories associed with entities extends JpaRepository
private RepoEntity repoEntity;
private RepoEntity2 repoEntity2;
@Transactional
protected void createEntity(Entity ent){
this.repoEntity.save(ent);
}
@Transactional
protected void createEntity2(Entity2 ent){
this.repoEntity2.save(ent);
}
}
Я мог бы откатить и отменить две сохраненные сущности программно. Я не специалист по Spring и не знаю, как это сделать. Может быть с конфигурацией?
Спасибо за вашу помощь.