was not registered for synchronization because DataSource is not transcational
时间: 2023-08-23 15:16:23 浏览: 103
回答: "was not registered for synchronization because synchronization is not active"的错误信息通常是由于数据源(DataSource)未启用事务导致的。要解决此问题,可以通过在代码中添加事务注解来启用事务。例如,可以在相关的Service类上添加`@Transactional`注解,并指定适当的事务传播方式,如`Propagation.REQUIRES_NEW`。同时,确保在使用到事务的方法上也要添加`@Transactional`注解。这样可以确保数据源启用了事务,从而解决该错误。 [1 [2
相关问题
was not registered for synchronization because datasource is not transaction
遇到“was not registered for synchronization because datasource is not transaction”的错误提示,通常情况下是在使用Spring事务管理器时出现了问题。具体原因是因为数据源并不是由事务管理器来进行管理,因此无法同步到事务中去。
这个问题通常是在使用JNDI数据源的时候会出现,JNDI数据源是由应用服务器管理的,事务并不是在应用内管理的。
解决这个问题的方法有两种,第一种是将数据源改为由Spring事务管理器来管理,这样数据源就可以同步到事务中去,从而解决问题。另外一种方法是使用JTA事务管理器,JTA事务管理器可以管理全局事务,可以将不同的数据源同步到一个全局事务中,这样也可以避免这个问题的出现。
总之,在使用Spring事务管理器时,需要注意数据源的管理,确保数据源可以同步到事务中去,避免出现这种错误。
was not registered for synchronization because DataSource is not transactional
这个问题的原因是因为数据源不是事务性的,导致Sqlsession未注册同步。一个解决方法是在service实现类方法上加上@Transactional注解,以确保同步注册成功。另外,也有很多网上的帖子提到了各种解决方法,但并没有一个有效的解决方法。有些帖子说是配置文件出错,但实际上项目是可以正常运行的,只是在控制台打印sql语句时出现了这个问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [“SqlSession[xxx] was not registered for synchronization because synchronization is not active”问题...](https://blog.csdn.net/qq_46174906/article/details/123428719)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]