我需要分离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;