spring boot中如何使用jpa实现动态切换schema?

第一次用spring boot 慢慢摸索了很多。
但是这个需求我试了好几个方法都失败了。

项目是单个数据库多个schema的结构。
不同登录用户可能对应使用的schema是不一样的。

但是用jpa的时候一旦启动完,从persistentContext注入的entityManager都是最初设定默认schema。

我看到有使用abstractRoutingDatasource来动态改变datasource的方法。
尝试了一下结合Aop可以改变datasource。

但是自动注入entityManager还是初始的datasource,是不是我有遗漏什么呢。

有没有大佬提点一下 哭哭。

阅读 6k
1 个回答

建议看一下苞米豆的多数据源源码dynamic-datasource-spring-boot-starter

里面提到了这个问题,您可以参考一下。

  1. 是否支持JPA?

不完全支持,受限于JPA底层,你只能在一个controller下切换第一个库,第二个库不能切换。(如有解决办法请联系作者)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题