@Transactional
public void save(User user) throws Exception{
try {
for (int i = 0;i < 5;i++){
apiService.createUser();//在权限系统创建用户以http形式
user.setUserName(“”);
user.setPassWord(null);
userDao.save(user);
System.out.print("继续执行"+i);
}
} catch (Exception e) {
System.out.print("service进来了");
}
公司 架构是spring+spring data jpa+springmvc
在执行save方法时
问题一:理论上在循环第一次已经异常不应该继续往下执行,但是会继续循环五次
问题二:在service中不会进入catch,而在controller中可以,如果我在循环中throw new RuntimeException()异常service进入catch,如果我删除事务注解,没问题进入catch.
感觉很奇怪,求指点
異常情報とは何ですか?トランザクションはエージェントを使用して実行されましたが、エージェントの処理中にエラーが発生した可能性があります。この方法では、エラーはサービスでキャプチャできず、コントローラーにスローされます
返信するのを忘れていました。実際、Spring data jpa は、保存操作を実行するときにデータをキャッシュします。データがデータベースに送信されない場合は、例外をキャッチするためにフラッシュする必要があります。