Мой проект столкнулся с проблемой, что транзакции Spring JPA не будут откатываться.Основой проекта является весна MVC + весна + весна данных JPA + оракул.Я искал много информации в Интернете, но все еще не смог решить мою проблему.
Я пробовал много способов, таких как установка метода на public или добавление rollbackFor = Exception.class
в @Transactional
, но этовсе еще не может быть решена.
Вот мой код
Контроллер
@RequestMapping(value = {"addUser"}, method = RequestMethod.GET)
@ResponseBody
public Boolean insertUser() throws Exception{
User user = new User();
user.setId(10);
userServiceI.addUser(user);
return true;
}
Сервис
Сервисный интерфейс
public interface UserServiceI {
void addUser(User user);
}
Класс реализации сервиса
@Service
public class UserService implements UserServiceI {
@Autowired
public UserDao userDao;
@Autowired
PersonService personService;
@Override
@Transactional(propagation= Propagation.REQUIRED,rollbackFor=Exception.class)
public void addUser(User user){
User user1 = userDao.saveAndFlush(user);
System.out.println(1/0);
}
}
Dao
public interface UserDao extends JpaRepository<User,Integer> {
}
Мой @Transactional
метод загружает мой класс реализации Service, который пишет подверженный ошибкам 1/0.Я ожидаю, что транзакция откатится после ошибки, но это не так.