gpt4 book ai didi

Java SE + Apache DeltaSpike : Unsatisfied dependencies for type Repository

转载 作者:行者123 更新时间:2023-12-01 19:09:11 25 4
gpt4 key购买 nike

我正在尝试使用 DeltaSpike Data模块 Weld ,但每个类都用 @Repository 注释在我的 IDE 中显示警告,并在运行时显示异常。

我尝试遵循DeltaSpike documentation多次检查Baeldung ,以及各种文章/论坛,但尚未找到解决方案。

有谁知道我可能会缺少什么来允许正确注入(inject)存储库?

IDE 警告

Managed Bean must be a concrete class or @Decorator

运行时异常

org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type ExampleRepo with qualifiers @Default
at injection point [BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject public com.example.myapp.services.ExampleService(ExampleRepo)

示例存储库

@Repository(forEntity = Data.class)
public interface ExampleRepo extends EntityRepository<Example, Long> {

Data findExampleById(long id);

@Modifying
@Query("UPDATE Data AS e SET e.locale = ?1 WHERE e.id = ?2")
int updateLocale(final Locale locale, final long id);

@Modifying
@Query("UPDATE Data AS g SET g.reactTranslation = ?1 WHERE g.id = ?2")
int updateReactTranslation(final boolean toggle, final long id);
}

Gradle

plugins {
id "io.spring.dependency-management" version "1.0.8.RELEASE"
}

ext {
deltaSpikeVersion = "1.9.2"
}

dependencies {
// DeltaSpike Extensions
implementation "org.apache.deltaspike.modules:deltaspike-data-module-api:${deltaSpikeVersion}"
runtimeOnly "org.apache.deltaspike.modules:deltaspike-data-module-impl:${deltaSpikeVersion}"
implementation "org.apache.deltaspike.modules:deltaspike-scheduler-module-api:${deltaSpikeVersion}"
runtimeOnly "org.apache.deltaspike.modules:deltaspike-scheduler-module-impl:${deltaSpikeVersion}"

// Database
implementation "org.hibernate:hibernate-core:${hibernateVersion}"
implementation "org.hibernate:hibernate-c3p0:${hibernateVersion}"
runtimeOnly "mysql:mysql-connector-java:8.0.18"
}

dependencyManagement {
imports {
mavenBom "org.apache.deltaspike.distribution:distributions-bom:${deltaSpikeVersion}"
}
}

为了澄清,以下也是项目的隐式依赖项。

最佳答案

我错过了 Java SE 特定指令: https://deltaspike.apache.org/documentation/cdiimp.html#javase6

我必须使用 DeltaSpike 的 CdiContainer 而不是 Weld 的 SeContainer

dependencies {
implementation "org.apache.deltaspike.cdictrl:deltaspike-cdictrl-api:${deltaSpikeVersion}"
runtimeOnly "org.apache.deltaspike.cdictrl:deltaspike-cdictrl-weld:${deltaSpikeVersion}"
}

关于Java SE + Apache DeltaSpike : Unsatisfied dependencies for type Repository,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59496772/

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