我已经像往常一样配置了一个带有@MessageMapping注释的websocket。它工作完美,但当我调用一些方法与@Transactional包围,我试图执行一些更新的数据库,我得到一个错误:
javax.persistence.TransactionRequiredException: Executing an update/delete query.
似乎事务管理器在这种情况下不起作用。然而,当从Rest控制器调用相同的方法时,一切都很顺利。有人知道发生了什么吗?
谢谢
我替换了XML配置:
<bean class="org.springframework.orm.jpa.JpaTransactionManager" id="transactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
with JAVA config:
@Configuration
@EnableTransactionManagement
public class AppConfig {
@Autowired
private EntityManagerFactory entityManagerFactory;
@Bean
public PlatformTransactionManager transactionManager() {
return new JpaTransactionManager(entityManagerFactory);
}
}