如何在Quarkus中使用不同的数据源进行读写查询?



我需要分离PostgreSQL实例的读写器。我有一个写副本和几个读副本。

Quarkus支持添加多个数据源,但是如何让Panache/Hibernate为不同的查询选择正确的数据源还不清楚。

问题:如何配置Quarkus以使用不同的数据源进行读/写访问?

我们在属性文件中使用以下内容来区分需要选择哪个DB数据源。然后在不同的包中分离指向不同数据源的代码。

quarkus.hibernate-orm."db".packages=com.mycompany.outgoing.db
quarkus.hibernate-orm."push".packages=com.mycompany.outgoing.push

我认为你需要有子类指向相同的BaseEntityof某种类型来区分数据源。

我能想到的另一个选项,我还没有使用,是注入2个不同的EntityManager在你的储存库类和管理你的储存库从EntityManager直接。

@Inject
@PersistenceUnit("db") 
EntityManager entityManager;
@Inject
@PersistenceUnit("push") 
EntityManager entityManagerPush;

最新更新