gpt4 book ai didi

java - 如何在 micronaut-data 中注入(inject)多个数据源的 JPA 存储库?

转载 作者:行者123 更新时间:2023-12-01 18:51:11 24 4
gpt4 key购买 nike

我有一个 micronaut-data 应用程序,对于复制操作,我需要使用相同的 JPA 存储库来访问多个数据源。我想将它们注入(inject)不同的变量中,例如sourceRepotargetRepo。数据源在 application.yml 中声明,名称为 defaulttarget。如果我使用 @Inject 声明一个存储库变量,它将被初始化以访问默认数据源。

问题是,如何声明注入(inject)的存储库变量以便它访问目标数据源?我可以声明 EntityManagerSynchronousTransactionManager目标注入(inject),如下所示,这些可以工作。但这些注释对存储库变量或参数都没有影响。

    @Inject
@CurrentSession("target")
EntityManager entityManager;

@PersistenceContext(name = "target")
SynchronousTransactionManager<Connection> transactionManager;

最佳答案

回答我自己的问题:目前(从 micronaut-data 1.0.0.RC1 开始)直接为不同的数据源注入(inject)存储库是不可能的。相反,@Repository 注释可以选择接受数据源名称(例如 @Repository("target"))。这意味着要在不同存储库上使用存储库,需要在特定类中声明。要使用这样的存储库,需要将相应类的实例注入(inject)到使用代码中。

已提议更改此设置 in the micronaut-data project正在考虑中。

关于java - 如何在 micronaut-data 中注入(inject)多个数据源的 JPA 存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59737148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com