java - spring 事务catch,service捕获不到异常,controller能捕获问题
PHPz
PHPz 2017-04-18 10:33:55
0
2
372
@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

学习是最好的投资!

모든 응답(2)
巴扎黑

예외정보란 무엇인가요? 해당 트랜잭션은 에이전트를 사용하여 실행되었으며, 에이전트 프로세스 중 오류가 발생했을 수 있습니다. 이러한 방식으로 오류는 서비스에서 캡처될 수 없으며 컨트롤러에 전달됩니다.

左手右手慢动作

답변을 잊어버렸습니다. 실제로 Spring 데이터 JPA는 저장 작업을 실행할 때 데이터를 캐시합니다. 데이터가 데이터베이스에 제출되지 않으면 예외를 포착하기 위해 플러시해야 합니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿