У меня возникла проблема при вызове метода службы, написанного в Spring Sevice, который был введен в MVVM в этом методе. Я сохраняю один объект, а после этого выполняю другой метод вызова метода оценки, который вызывает исключение и я хочу, чтобы в то время как бросать это исключение моя сделка откатить мой метод обслуживания части как под CeilingServiceIMPL
:Непроходимая пружинная транзакция из ZK
CeilingSheet ceilingSheet = new CeilingSheet();
ceilingSheet.setFiscalYear(fiscalYear);
ceilingSheet.setStatus(ECeilingSheetStatus.NEW);
ceilingSheet = saveCeilingSheet(ceilingSheet).getResult();
CeilingCategory ceilingCategory1 = null;
try {
ceilingCategory1 = categoryQueryService.findCeilingCategoryByCode(
"01").getResult();
} catch (ObjectNotFoundException ex) {
throw new RequestException(1234, ceilingCategory1);
}
если RequestException броски, я ожидаю, что мои записи, которые я ранее сохраненной также откатить. Я делаю транзакцию службы по аннотированию, как
@Transactional(rollbackFor = RequestException.class)
боб вводит
@WireVariable(ICeilingSheetService.NAME) private ICeilingSheetService ceilingSheetService;
Когда я попробовал этот метод для вызова из тестового JUnit случае отбрасывания хорошо, но когда я интегрировать его с ZK zul и View Model авторизованными службами, она перестает откатываться назад, и даже если мой код вызывает RequestException, мой CeilingSheet сохраняются. Мой ZK web.xml является
Мое приложение-context.xml
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>/WEB-INF/database.properties</value>
<value>/WEB-INF/msg-database.properties</value>
</list>
</property>
</bean>
<tx:annotation-driven />
<context:annotation-config />
<context:component-scan base-package="my.service" />
<import resource="hibernate-context.xml" />
Мой hibernat-context.xml
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass">
<value>${jdbc.driverClassName}</value>
</property>
<property name="jdbcUrl">
<value>${jdbc.url}</value>
</property>
<property name="user">
<value>${jdbc.username}</value>
</property>
<property name="password">
<value>${jdbc.password}</value>
</property>
<property name="maxPoolSize" value="${jdbc.maxPoolSize}" />
<property name="minPoolSize" value="${jdbc.minPoolSize}" />
<property name="maxStatements" value="${jdbc.maxStatements}" />
<property name="testConnectionOnCheckout" value="${jdbc.testConnection}" />
</bean>
<!-- bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"> <value>${driverClassName}</value> </property>
<property name="url"> <value>${url}</value> </property> <property name="username">
<value>${username}</value> </property> <property name="password"> <value>${password}</value>
</property> </bean -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan">
<list>
<value>my.domain.class</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
<prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
<prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
<prop key="jadira.usertype.autoRegisterUserTypes">${jadira.usertype}</prop>
</props>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="persistenceExceptionTranslationPostProcessor"
class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />
Пожалуйста, советы ...
Спасибо Aaron за ответ, я закачиваю beans-сервис в ZK-контроллер с помощью ZK Auto-wired Annotation. Код отключен для контроллера для автоматической проводки весны: @WireVariable (ICeilingSheetService.NAME) частный ICeilingSheetService ceilingSheetService; Это приведет к подключению моего компонента bean-сервиса в контроллере ZK и отлично работает для всех видов активности, кроме откат во время исключения. – vikas
Тогда что вы видите в журнале отладки? –
Было бы неплохо добавить код инъекции и определение компонента в вопрос. –