java - spring 事务catch,service捕获不到异常,controller能捕获问题
PHPz
PHPz 2017-04-18 10:33:55
0
2
368
@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.
    感觉很奇怪,求指点
    
    
PHPz
PHPz

学习是最好的投资!

répondre à tous(2)
巴扎黑

Quelles sont les informations sur les exceptions ? La transaction a été exécutée à l'aide d'un agent et une erreur peut s'être produite pendant le processus de l'agent. De cette façon, les erreurs ne peuvent pas être capturées dans le service et sont renvoyées au contrôleur

左手右手慢动作

J'ai oublié de répondre. En fait, spring data jpa met en cache les données lors de l'exécution de l'opération de sauvegarde, si elles ne sont pas soumises à la base de données, elles doivent être vidées pour intercepter l'exception

.
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal