2014-06-13 1 views
2

@Transactional (readonly = true)으로 인해 서비스 메소드가있는 Spring MVC 기반 웹 응용 프로그램이 있습니다.트랜잭션을 커밋 할 때 트랜잭션 readonly = true가 예외를 throw하지 않습니다.

mysql db에서 데이터를 커밋하는 메서드가 있기 때문에 봄 예외를 예상했다.

누군가 트랜잭션 관련 (Readonly) 관련 예외가 발생하지 않는 이유를 알려주십시오. 코드 언급 한 아래

... @TransactionalreadOnlyJavadoc에서 직접 찍은

@Service 
@Transactional 
public class AppService { 

... @Autowired Dao 

public int createApplication(AppVO vo){ 

.... 

} 

} 
+0

도움이 될 경우 [this] (http://stackoverflow.com/a/1712328/1777090) 설명 및 [this] (http://stackoverflow.com/a/13884303/1777090)을 확인하십시오. –

답변

3

은 다음이 그냥 실제 거래 서브 시스템에 대한 힌트 역할을

을; 이 경우 이 반드시 쓰기 액세스 시도 실패를 유발하지는 않습니다. 읽기 전용 힌트를 해석 할 수없는 트랜잭션 관리자 인 은 읽기 전용 트랜잭션을 묻는 메시지가 나타나면 예외를 throw하지 않습니다.

따라서 예외가 발생하지 않은 것으로 예상되는 것은 아닙니다.

+0

감사합니다. 선전 값을 NOT_REQUIRED로 나타내는 실험 목적을 위해 서비스 측에서 어떤 예외도 발생시키지 않으면 실제로 트랜잭션을 커밋합니다. – user2775185

+0

@ user2775185 환영합니다! – geoand