Quarkus 依赖注入 JPA 实体管理器的问题

Problem with Quarkus Dependency Injection to JPA Entity Manager

生成问题

Caused by: io.quarkus.builder.BuildException: 
Build failure: Build failed due to errors
    [error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: javax.enterprise.inject.spi.DeploymentException: Found 2 deployment problems: 
[1] Unsatisfied dependency for type javax.persistence.EntityManager and qualifiers [@DataSource(value = "ergoint")]
    - java member: com.int.dao.EPersistence#entityManagerE
    - declared on CLASS bean [types=[java.lang.Object, com.int.dao.EPersistence], qualifiers=[@Default, @Any], target=com.int.dao.EPersistence]
[2] Unsatisfied dependency for type javax.persistence.EntityManager and qualifiers [@DataSource(value = "madata")]
    - java member: com.int.dao.MPersistence#entityManagerM
    - declared on CLASS bean [types=[com.int.dao.MasterDataPersistence, java.lang.Object], qualifiers=[@Default, @Any], target=com.int.dao.MPersistence]
    at io.quarkus.arc.processor.BeanDeployment.processErrors(BeanDeployment.java:873)

代码:

@ApplicationScoped
public class MPersistence {

    @Inject
    @DataSource("madata")
    private EntityManager entityManagerMaster;

属性文件:

quarkus.datasource.driver=oracle.jdbc.driver.OracleDriver
quarkus.hibernate-orm.dialect=oracle.jdbc.driver.OracleDriver

quarkus.datasource.madata.url=jdbc:oracle:thin:@myhost:1521:orcl
quarkus.datasource.madata.driver=oracle.jdbc.driver.OracleDriver
quarkus.datasource.madata.username=quarkus_test
quarkus.datasource.madata.password=quarkus_test

只需 运行 "maven clean install" 来自 eclipse ide 并在 运行 宁测试用例时得到这个问题。

(之前我认为这两个 类 可以通过 EJB 中的 @Stateless 读取,但是当我将 quarkus 更新到 1.1.0 final 时,它删除了所有 EJB 依赖项。所以我将应用程序限定在范围内)

更新:从 Quarkus 1.8 开始,我们支持直接在 application.properties 中设置多个持久化单元。有关详细信息,请参阅 https://quarkus.io/guides/hibernate-orm#multiple-persistence-units

我们尚不支持在 application.properties 中配置多个持久性单元。 因此,您尝试注入的 EntityManager 不是由 Quarkus 创建的。

您可以跟踪此问题 https://github.com/quarkusio/quarkus/issues/2835 以了解我们在该主题上的进展。