Springboot+Neo4j+Mysql事务配置(二)

本篇文章我们继续讨论neo4j与mysql多数据源时,批量事务的提交。就是说我一个提交结果里既有mysql更新,又有neo4j更新,这个时候的事务该怎么办呢?有人会说加两个事务不就行了,答案是当然不行的,因为@Transactional注解不支持多个事务管理器,默认使用transactionManager,需要实现@Transactional管理mysql事务。我们要做的就是把这两个事务合并成一个事务提交就OK了。

那我们先自定义一个注解,表示这两个事务的合集

@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface MultiTransaction {
    //这里可以自定义参数
}

然后我们在配置文件里加上如下代码

@Aspect
@Configuration
@EnableTransactionManagement
@Slf4j
public class Neo4jConfig {
    /\*\*
     \* 定义neo4j事务
     \*
     \* @param sessionFactory
     \* @return
     \*/
    @Bean("neo4jTransactionManager")
    public Neo4jTransactionManager neo4jTransactionManager(SessionFactory sessionFactory) {
        return new Neo4jTransactionManager(sessionFactory);
    }

    /\*\*
     \* 定义mysql 事务
     \*
     \* @param em
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值