问题遇到的现象和发生背景
这几天在研究 多数据源的问题,选用的技术包含spring boot 2.0 意思 和JPA+himbernate
在使用jpa 操作数据库的增删改查 和事务的自动回滚没有问题,但是缺遇到了其他的问
bg:公司员工习惯了用himbernate 这种原生态的写法,于是让我兼容himbernate
问题来了,在一个业务中,访问不同库的时候,himbernate 在定义了实体管理器的时候是可以直接管理的。
但是 每一个新的业务或者新的实体都需要去创建一个java列然后声明PersistenceContet 他的unitName = ‘’
这样大大增加了编码的编写了,也不是很灵活。
下面我将代码贴图,
问题相关代码,请勿粘贴截图
1.多数据源的配置
2.声明JPA事务中支持himbernate 国际化 以及PersistenceContext unit 名称 以及他支持的实体集合包所在位子
3.现有的查询
4.通过AOP实现修改他的 PersistenceContext unitName
**这里我想了下,我只是改变了他的属性值,那么以及被持久化到了bean里面,也就是虚拟内存,我通过反射修改他的属性值并无半点意义
**
运行结果及报错内容
结果通过注解 修改他的持久化单元管理器的时候,还是可以正常查询,而不是报错。不是我想要的结果
我的解答思路和尝试过的方法
我想要达到的结果
我的目的就是想通过AOP自定义注解,在dao的实现层自定义当前的实体管理器为哪一个数据源,实现自动的切换。