2012-04-25 3 views
0

Я занимаюсь разработкой веб-приложения и решил, что использование весенних данных будет хорошей идеей. Чтобы быть справедливым, это делает жизнь чрезвычайно легкой, а слой DAO очень тонким.Данные Spring, Hibernate 4.1.1 и Spring JTA Transaction Manager

Проблема, которую я имею, связана с сохраняющимися данными. Когда я использую JPATransactionManager, настойчивость работает так, как ожидалось. Но мне нужно использовать JTATransactionManager. Когда я использую это кажется, что сделка выглядит нормально, но спящий режим флеш-видимому, не связан с ОЙ фиксацией

DEBUG [org.springframework.transaction.jta.JtaTransactionManager] (HTTP - 127.0.0.1 -8080-2) Создание новой транзакции с именем [com.clubgroups.user.registration.service.impl.UserRegistrationServiceImpl.registerUser]: PROPAGATION_REQUIRED, ISOLATION_DEFAULT; ''

DEBUG [org.springframework.transaction.jta.JtaTransactionManager] (HTTP - 127.0.0.1-8080-2) Участие в существующей транзакции

DEBUG [org.springframework.transaction.jta.JtaTransactionManager] (http-127.0.0.1-8080-2) Инициирование транзакции фиксации

Выше сообщения об отладке, подтверждающие, что транзакция совершена. Но данные, похоже, не сбрасываются в базу данных.

Я инициализировать менеджер транзакций, как это:

@Bean 
public JpaTransactionManager transactionManager() { 
    JtaTransactionManager transactionManager = new JtaTransactionManager();  

    return transactionManager; 
} 

Любая помощь будет большим.

+0

Возможно, вы помещаете флаг только для чтения? Или вы меняли FlushMode на MANUAL? –

ответ

0

Я немного озадачен настройкой JTA, так как это очень необычно. Во-первых, посмотрите на the reference documentation на то, как правильно настроить транзакции JTA. Просто создание экземпляра JtaTransactionManager не работает, так как вам необходимо получить UserTransaction от JNDI. Вы должны увидеть сообщение об ошибке, если вы вызываете afterPropertiesSet() в свой метод @Bean, так как это покажет недостающую конфигурацию.