2012-12-19 7 views
0

DataSourceTransactionManager에 대한 사용자 지정 격리 수준을 설정하는 방법은 무엇입니까?DataSourceTransactionManager에 대한 사용자 지정 격리 수준 설정

스프링 구성 파일에 다음과 같은 내용이 있습니다.

<bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 
    <property name="dataSource" ref="myDataDource"/>  
</bean> 

<bean id="myTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true" lazy-init="false" autowire="default" dependency-check="default"> 
    <property name="transactionManager"> 
    <ref bean="transactionManager" /> 
    </property> 
    <property name="transactionAttributes"> 
    <props> 
     <prop key="cancel">PROPAGATION_REQUIRED,ISOLATION_READ_UNCOMMITTED,timeout_25,-Exception</prop> 
    </props> 
    </property> 
</bean> 

하지만 실행하려고하면 다음과 같은 오류가 발생합니다.

org.springframework.transaction.InvalidIsolationLevelException: JtaTransactionManager does not support custom isolation levels by default - switch 'allowCustomIsolationLevels' to 'true' 

저는 JtaTransactionManager를 사용하지 않으므로 왜 경고 메시지가 나옵니까? DataSourceTransactionManager에 대한 사용자 정의 격리 수준을 활성화하려면 어떻게합니까? 문서에서는이 클래스가 사용자 정의 격리 수준을 지원한다고 언급했지만 온라인에서 예제를 찾지 못했습니다. 대부분은 JtaTransactionManager 전용입니다. 아무도 나를 도울 수 있는지 궁금해. 감사.

답변

1

TransactionManager은 DataSourceTransactionManager 또는 JtaTransactionManager 또는 JpaTransactionManager가 될 수 있습니다. 그 중 어떤 것이 든 @Transactional 주석을 사용하여 격리 수준을 구성 할 수 있습니다.

컨텍스트 파일이 DAO 또는 서비스 수준에있는 주석을 지원하는 <tx:annotation-driven />으로 활성화 된 경우 트랜잭션을 인식합니다.

isolation의 속성은 @Transactional으로 설정할 수 있습니다. public void save(Country country) { // do some operations }

참조

@Transactional(isolation = Isolation.READ_COMMITTED)

: Isolation levels, Transactional

나는 XML 파일을이 도움이

희망을 구성과 확실하지 않다. :)