> Java > java지도 시간 > 본문

springboot 프로젝트에서 트랜잭션 라벨 확인 문제를 해결하는 방법

WBOY
풀어 주다: 2023-05-10 23:28:12
앞으로
944명이 탐색했습니다.

1. 문제점 설명

이전에는 springboot 프로젝트에서 트랜잭션 구성을 태그를 통해 사용해왔는데, 지난 내부 프로젝트에서는 다른 사람의 코드에서 사용했기 때문에 (그때는 프레임워크가 있었기 때문에) 작동하지 않는 것 같았습니다. 보증, 신경 쓰지 않았습니다), 새로운 시작 프로젝트에서 다시 사용됩니다. 확인 후 springboot 프로젝트에서 두 개의 태그를 구성하는 것으로 충분합니다.

2. 솔루션

2.1 설명

(1) 실제로 두 개의 태그가 있습니다. 하나는 시작 클래스에서 사용되며(@EnableTransactionManagement), 다른 하나는 필요할 때마다 구성됩니다(@Transactional). , 방금 이전 테스트 프로젝트를 찾았습니다. 한 가지 방법은 다음과 같습니다. 데이터 조각을 데이터베이스에 저장하고 1을 0으로 나누는 코드를 만든 다음 트랜잭션 레이블이 있거나 없는 경우 차이점이 무엇인지 확인합니다.

(1) 컨트롤러 클래스

@ResponseBody
    @GetMapping("/tstest")
    public String tstest() {
        this.userService.tstest();
        return "SUCCESS";
    }
로그인 후 복사

(2) 서비스 클래스

public void tstest() {
        //保存
        UserEntity userEntity = new UserEntity();
        userEntity.setType(0);
        userEntity.setOpenid("1111");
        insert(userEntity);
	
				//报错,回滚
        int i = 1/0;
        System.out.println(i);
    }
로그인 후 복사
2.3 확인 1, 트랜잭션이 없습니다

트랜잭션 라벨이 없습니다. 코드는 위와 같습니다.

(1) 먼저 데이터베이스를 지웁니다.

(2) tstest 요청을 실행합니다.

삽입 코드 줄이 실행된 후 데이터가 데이터베이스에 저장됩니다.

springboot 프로젝트에서 트랜잭션 라벨 확인 문제를 해결하는 방법

그러면 실행이 완료됩니다(1/0). 오류 코드에서 오류를 보고하더라도 데이터베이스의 데이터는 여전히 롤백되지 않으며 일관성이 유지되지 않습니다.

springboot 프로젝트에서 트랜잭션 라벨 확인 문제를 해결하는 방법

2.4 검증 2, 트랜잭션이 있습니다

(1) 레이블 두 개를 추가합니다. 하나는 시작 클래스 메서드에 있고 다른 하나는 tstest 메서드에 있습니다. springboot 프로젝트에서 트랜잭션 라벨 확인 문제를 해결하는 방법


springboot 프로젝트에서 트랜잭션 라벨 확인 문제를 해결하는 방법(2) 먼저 데이터를 삭제하고 실행하여

springboot 프로젝트에서 트랜잭션 라벨 확인 문제를 해결하는 방법


삽입 코드 라인을 실행하였음에도 현재 데이터베이스에는 데이터가 없는 것으로 확인되었으며, 그런 다음 실행 후 코드는 오류를 보고하고 데이터는 롤백되며 데이터는 데이터베이스에 저장되지 않습니다. 이는 트랜잭션이 의도한 역할을 수행하고 데이터가 롤백되었음을 나타냅니다.

springboot 프로젝트에서 트랜잭션 라벨 확인 문제를 해결하는 방법

위 내용은 springboot 프로젝트에서 트랜잭션 라벨 확인 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿