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

Sas*_*ota 6 java sql hibernate quarkus quarkus-panache

我需要分离读取器/写入器 PostgreSQL 实例。我有一个写入副本和多个读取副本。

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

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

Che*_*pir 1

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

\n
quarkus.hibernate-orm."db".packages=com.mycompany.outgoing.db\nquarkus.hibernate-orm."push".packages=com.mycompany.outgoing.push\n
Run Code Online (Sandbox Code Playgroud)\n

我认为你\xc2\xb4ll需要有指向某种相同BaseEntity的子类来区分数据源。

\n

我能想到的其他选项(我还没有使用过 xc2xb4t)是在您的存储库类中注入 2 个不同的 EntityManager,并直接从 EntityManager 管理您的存储库。

\n
@Inject\n@PersistenceUnit("db") \nEntityManager entityManager;\n\n@Inject\n@PersistenceUnit("push") \nEntityManager entityManagerPush;\n
Run Code Online (Sandbox Code Playgroud)\n