构建问题
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
只需从 eclipse ide 运行“maven clean install”并在运行测试用例时遇到此问题。
(之前我认为这两个类可以通过 EJB 中的 @Stateless 读取,但是当我将 quarkus 更新到 1.1.0 Final 时,它删除了所有 EJB 依赖项。所以我将应用程序范围置于应用程序范围内)
最佳答案
更新:从 Quarkus 1.8 开始,我们支持直接在 application.properties 中设置多个持久化单元。请参阅https://quarkus.io/guides/hibernate-orm#multiple-persistence-units了解更多信息。
我们尚不支持在 application.properties
中配置多个持久性单元。
因此,您尝试注入(inject)的 EntityManager 不是由 Quarkus 创建的。
您可以跟踪此问题 https://github.com/quarkusio/quarkus/issues/2835了解我们在该主题上的进展。
关于jpa - Quarkus 依赖注入(inject) JPA 实体管理器的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59578309/