@ Транзакционная аннотация не работает - PullRequest
0 голосов
/ 12 октября 2010

хорошо, достаточно.Я не мог сделать эту работу.Я новичок в транзакциях Spring и использую аннотацию @Transactional в своем сервисе для управления транзакциями.Ниже приведен мой файл конфигурации Spring Bean.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation="
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
       http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.0.xsd">

  <tx:annotation-driven transaction-manager="txManager"/>

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

  <jee:jndi-lookup id="dataSource" jndi-name="jdbc/myapp"/> 

  <!-- other <bean/> definitions here -->

</beans>

, и я комментирую свой сервис:

@Transactional
public class MyServiceImpl implements MyService {
...
}

Я замечаю две вещи

  1. Соединение, которое я получаюв моем DAO [с использованием DataSourceUtils.getConnection (dsName)] включена автоматическая фиксация [true].
  2. Насколько я отлаживал, не похоже, чтобы была какая-либо транзакция, которая началась во время моего вызова метода службы.

У кого-нибудь была эта проблема?

1 Ответ

0 голосов
/ 12 октября 2010

Я использую Hibernate вместе с HibernateTransactionManager, поэтому я не слишком знаком с тем, как работает менеджер транзакций JDBC. Вы проверили стек вызовов, чтобы увидеть, есть ли там TransactionInterceptor? Если это так, тогда работает транзакционная аннотация, и вы можете просто упустить что-то еще. Если вы не искали его, с чего вы взяли, что он не работает? Чтобы устранить очевидное, вы явно установили параметр в конфигурации JDBC для отключения автоматической фиксации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...