gpt4 book ai didi

jakarta-ee - 无法在 Java EE 7 堆栈上获取 Spring Data JPA + CDI

转载 作者:行者123 更新时间:2023-12-04 00:47:03 30 4
gpt4 key购买 nike

我正在尝试让 Spring 数据 JPA 与 EJB 和 CDI (Java EE 7) 一起工作。好吧,我遵循了文档(http://docs.spring.io/spring-data/jpa/docs/1.4.2.RELEASE/reference/html/jpa.repositories.html#jpd.misc.cdi-integration),但仍然无法在无状态 ejb 中 @inject 我的存储库。以下是代码:

@Configuration
@EnableJpaRepositories
public class EntityManagerFactoryProducer {

@Produces
@ApplicationScoped
public EntityManagerFactory entityManagerFactory() {
return Persistence.createEntityManagerFactory("mypu");
}

public void close(@Disposes EntityManagerFactory entityManagerFactory) {
entityManagerFactory.close();
}
}

$

public interface TipoFolhaRepository extends JpaRepository<TipoFolha, Long> {

List<TipoFolha> findByNome(String nome);

TipoFolha findByTipo(String tipo);
}

$

@Stateless
public class TipoFolhaFacade extends AbstractFacade<TipoFolha> {

@Inject
TipoFolhaRepository tpRepo;

@Override
public List<TipoFolha> findAll(){
return tpRepo.findAll();
}
}

跟随错误。 WELD-001408 在注入(inject)点 [[BackedAnnotatedField] @Inject com.mycompany.ejb.TipoFolhaFacade.tpRepo] 具有限定符 [@Default] 的类型 [TipoFolhaRepository] ​​的不满足依赖关系

我错过了什么? =S

最佳答案

您需要在存储库类所在的模块中使用 bean-discovery-mode="all" 启用 CDI。这意味着在 META-INF 文件夹中创建一个包含以下内容的 beans.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
bean-discovery-mode="all">
</beans>

可以在 this Oracle blogpost 中找到对不同发现模式的简短说明。

关于jakarta-ee - 无法在 Java EE 7 堆栈上获取 Spring Data JPA + CDI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19713128/

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