同一个HTTP请求中spring JPA读写操作的数据源切换



使用AbstractRoutingDataSource我在HTTP请求标签中实现了读写数据源分离(本质上是将请求分配给数据源并在整个请求中坚持使用它)

在我的情况下,首先我必须获取一些数据,修改这些数据,然后在数据库中持久化,这里首先我需要只读数据源,然后在同一个HTTP请求中更新。例子:

StudentEntity entity= studentRepository.findById(1);//need read-only datasource
entity.setName("David");
entity= studentRepository.save(entity);//need updateable datasource

有没有人可以帮助我如何才能实现这一点?我已经挣扎了两天了。

我以前也实现过这样的解决方案。对数据库连接的思考。您还需要2个数据源bean和2个jdbcTemplates,它们都需要命名为@Bean("beanName")(指定默认的为@Primary,以防止Spring的一些默认进程)

然后@Autowired那两个豆子与@Qualifer("beanName")

但我不确定这个想法是否可以应用于JPA。

找到了解决方案,必须把这个放在application.properties

spring.jpa.open-in-view = false

请到下面的链接查看解释

Spring Boot中的Spring .jpa.open-in-view=true属性是什么?

最新更新