Нет транзакции при использовании веб-сокета Spring

Я, как обычно, настроил веб-сокет с аннотацией @MessageMapping. Он работает отлично, но когда я вызываю какой-либо метод, окруженный @Transactional, и пытаюсь выполнить некоторые обновления в базе данных, я получаю сообщение об ошибке:

javax.persistence.TransactionRequiredException: Executing an update/delete query.

Кажется, транзакционный менеджер в этом случае не работает. Однако, когда этот же метод вызывается из контроллера Rest, все идет хорошо. Кто-нибудь знает, что происходит?

Спасибо


person Sobrino    schedule 29.07.2015    source источник


Ответы (1)


Я заменил конфигурацию XML:

<bean class="org.springframework.orm.jpa.JpaTransactionManager" id="transactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>

с конфигурацией JAVA:

@Configuration
@EnableTransactionManagement
public class AppConfig {
   @Autowired
   private EntityManagerFactory entityManagerFactory;

   @Bean
   public PlatformTransactionManager transactionManager() {
       return new JpaTransactionManager(entityManagerFactory);
   }
}

и это работает.

person Nick Balch    schedule 17.01.2019