spring jpa 读写分离,在一个方法中同时包含读写操作,如何处理?

IT小混混 发布于 2017/12/13 09:50
阅读 254
收藏 1

spring jpa 中读写分离是通过继承 AbstractRoutingDataSource 来实现db切换的,我在实践的时候,在同一个方法体里面先读后写好像db并没有切换,写的时候报数据库readonly。

具体方法体代码

@RequestMapping(path = "/orders", method= RequestMethod.GET)
    public     Iterable<Order>  createSampleOrder() {
        TenantContext.setCurrentTenant("slave");
        orderRepository.findAll();
        TenantContext.setCurrentTenant("master");
        Order newOrder = new Order(new Date(System.currentTimeMillis()));
        orderRepository.save(newOrder);
        TenantContext.setCurrentTenant("slave");
        return  orderRepository.findAll();
    }
}

源码地址https://github.com/wmeints/spring-multi-tenant-demo.git

同样的使用mybatis貌似没问题。

加载中
返回顶部
顶部