programing

@Transactional(전파=전파).필수)

randomtip 2022. 12. 31. 16:40
반응형

@Transactional(전파=전파).필수)

만약 누군가가 이 주석이 무엇을 하고 우리가 그것을 정확히 언제 사용할 수 있는지를 설명할 수 있다면:

@Transactional(propagation=Propagation.REQUIRED)

감사해요.

Spring Docs에 기재되어 있는 사용법 이외의 사용법에 대한 설명이 필요한 경우

이 코드를 고려하십시오.

class Service {
    @Transactional(propagation=Propagation.REQUIRED)
    public void doSomething() {
        // access a database using a DAO
    }
}

doSomething()이 호출되면 실행하기 전에 데이터베이스에서 트랜잭션을 시작해야 합니다.이 메서드의 호출자가 트랜잭션을 이미 시작한 경우 이 메서드는 현재 데이터베이스 연결에서 동일한 물리적 트랜잭션을 사용합니다.

이것.@Transactional주석을 사용하면 코드가 실행될 때 트랜잭션이 있어야 함을 알릴 수 있습니다.이 기능이 없으면 실행되지 않기 때문에 코드로 데이터베이스에 불완전한 데이터가 남아 있지 않거나 예외가 발생할 경우 데이터를 정리해야 한다고 가정할 수 있습니다.

트랜잭션 관리는 매우 복잡한 주제이므로 이 간단한 답변이 도움이 되기를 바랍니다.

전파 설정이 PRAGATION_REQUIRED일 경우 설정이 적용되는 각 메서드에 대해 논리 트랜잭션 범위가 생성됩니다.이러한 각 논리 트랜잭션 범위는 롤백 전용 상태를 개별적으로 결정할 수 있으며, 외부 트랜잭션 범위는 내부 트랜잭션 범위와 논리적으로 독립적이다.물론 표준 PREPAGATION_REQUIRED 동작의 경우 이들 스코프는 모두 동일한 물리 트랜잭션에 매핑됩니다.따라서 내부 트랜잭션 범위에 설정된 롤백 전용 마커는 외부 트랜잭션의 실제 커밋 기회에 영향을 미칩니다(예상대로).

여기에 이미지 설명 입력

http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/transaction.html

봄 응용 프로그램에서 주석 기반 트랜잭션 지원을 활성화하는 경우<tx:annotation-driven/>@Transactional(propagation=Respagation)을 사용하여 클래스/클래스에 주석을 붙입니다.필수) 그러면 스프링 프레임워크가 트랜잭션을 시작하고 메서드를 실행하고 트랜잭션을 커밋합니다.실행 시예외가 발생하면 트랜잭션이 롤백됩니다.

실제 전파=전파.REQUIRED는 기본 전파 수준이므로 명시적으로 언급할 필요가 없습니다.

상세한 것에 대하여는, http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/transaction.html#transaction-declarative-annotations 를 참조해 주세요.

및 합니다.REQUIRED,ISOLATION거래관리 자체의 기본을 이해해야 한다.

자세한 내용은 추적 관리를 참조하십시오.

언급URL : https://stackoverflow.com/questions/10740021/transactionalpropagation-propagation-required

반응형