SSH 통합, spring 사무 관리 스크롤 백 문제 없 음

Spring 의 트 랜 잭 션 스크롤 백 은 Runtime Exception 형식 이 이상 할 때 만 스크롤 백 합 니 다. 일반 Exception 에 대해 서 는 유효 하지 않 습 니 다.
다음은 제 서비스 층 에서 이상 을 포착 하고 Runtime Exception 이상 을 Action 층 으로 던 집 니 다.
        @Override
	public void lock(String id) throws RuntimeException {
		try {
			this.loginUserDao.lock(id);
			LoginUser user = this.loginUserDao.findById(id);
			user.setSex("      ,  RuntimeException     ");
			this.loginUserDao.save(user);
		} catch (Exception e) {
			//       ,  RuntimeException     。
			// spring        RuntimeException   ,    , Exception  
			throw new RuntimeException(e.getMessage());
		}
	}

spring 에서 트 랜 잭 션 관리 설정:
	<!--  sessionFactory        -->
	<bean id="transactionManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory">
			<ref local="sessionFactory" />
		</property>
	</bean>

	<!--         -->
	<bean id="transactionInterceptor"
		class="org.springframework.transaction.interceptor.TransactionInterceptor">
		<!--                 -->
		<property name="transactionManager" ref="transactionManager" />
		<property name="transactionAttributes">
			<!--          PROPAGATION_REQUIRED:         ,        ,    ,       。 -->
			<props>
				<prop key="save*">PROPAGATION_REQUIRED</prop>
				<prop key="add*">PROPAGATION_REQUIRED</prop>
				<prop key="delete*">PROPAGATION_REQUIRED</prop>
				<prop key="update*">PROPAGATION_REQUIRED</prop>
				<prop key="lock*">PROPAGATION_REQUIRED</prop>
				<prop key="unLock*">PROPAGATION_REQUIRED</prop>
				<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
				<prop key="list*">PROPAGATION_REQUIRED,readOnly</prop>
				<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
				<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
			</props>
		</property>
	</bean>
	<!--          bean -->
	<bean id="autoProxy"
		class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
		<property name="beanNames">
			<list>
				<!--        Service   bean     -->
				<value>*Service</value>
			</list>
		</property>
		<property name="interceptorNames">
			<list>
				<value>transactionInterceptor</value>
			</list>
		</property>
	</bean>

좋은 웹페이지 즐겨찾기