使用Spring websocket时没有事务

时间:2015-07-29 10:14:28

标签: java spring spring-transactions spring-websocket

我像往常一样使用@MessageMapping注释配置了websocket。它工作得很好但是当我调用@Transactional包围的某些方法时,我尝试在数据库上执行一些更新,我得到一个错误:

dta[ !(dta$id == 'B13639J2' & (dta$epnum == dta$max)) , ]

在这种情况下,事务管理器似乎不起作用。但是,当从Rest控制器调用相同的方法时,一切顺利。谁知道发生了什么?

谢谢

1 个答案:

答案 0 :(得分:0)

我替换了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);
   }
}

它有效。