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

标签 java sql hibernate quarkus quarkus-panache

我需要分离读写器 PostgreSQL 实例。我有一个写副本和几个读副本。
Quarkus 支持 adding multiple data sources ,但是不清楚如何让 Panache/Hibernate 为不同的查询选择正确的。
问题:如何配置 Quarkus 使用不同的数据源进行读/写访问?

最佳答案

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

quarkus.hibernate-orm."db".packages=com.mycompany.outgoing.db
quarkus.hibernate-orm."push".packages=com.mycompany.outgoing.push
我认为您需要让子类指向某种相同的 BaseEntity 以区分数据源。
我能想到的其他选项,我还没有使用过,是在您的存储库类中注入(inject) 2 个不同的 EntityManager 并直接从 EntityManager 管理您的存储库。
@Inject
@PersistenceUnit("db") 
EntityManager entityManager;

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

关于java - Quarkus 中如何使用不同的数据源进行读写查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68682564/

相关文章:

SQL:多次复制一行,每次更改一个值

mysql - 如何使用 Symfony 选择最近 24 小时的 Doctrine_Query?

java - SQL:如何获取与表的时间戳字段具有相同月份和年份的条目?

java - Hibernate 不合并条目

java - Hibernate CreateNativeQuery 返回空列表

java - 为什么不锁定一个基于值(value)的类

java - 多个输入:将相同的输入添加到多个映射器以进行比较

java - 在 Android 中跨不同模块访问代码?

java - 随线程更新场景

java - 集群配置中的 Hibernate 搜索?