当前位置: 首页 > 知识库问答 >
问题:

错误:找不到符合依赖项条件的bean

滕渝
2023-03-14

我用SpringMVC4开发了一个web应用程序。对于DAO层,我添加了一个类GenericDAO:`public class GenericDAO{

@PersistenceContext
private EntityManager entityManager;

private Class<T> parametrizedType;

public GenericDAO(Class<T> parametrizedType) {
    this.parametrizedType = parametrizedType;
}

public EntityManager getEntityManager() {
    return entityManager;
}

public List<T> executeQuery(String query){
    TypedQuery<T> typedQuery = entityManager.createQuery(query, parametrizedType);
    List<T> result = typedQuery.getResultList();
    return result;
}

public List<T> listAll(){
    List<T> result = getEntityManager().createQuery("Select t From " + parametrizedType.getSimpleName() + " t", parametrizedType).getResultList();
    return result;
}

public T getById(Object id){
    return getEntityManager().find(parametrizedType, id);
}

@SuppressWarnings("unchecked")
public List<T> executeNativeQuery(String query){
    List<T> result = entityManager.createNativeQuery(query, parametrizedType).getResultList();
    return result;
}

public List<T> executeNamedQuery(String query){
    List<T> result = entityManager.createNamedQuery(query, parametrizedType).getResultList();
    return result;
}

@Transactional
public void save(T entity){
    entityManager.persist(entity);
}

@Transactional
public void modify(T entity){
    entityManager.merge(entity);
}

@Transactional
public T find(Object id){
    if(id!=null){
        return entityManager.find(this.parametrizedType, id);
    }
    return null;
}

@Transactional
public void delete(Object id){
    T t = find(id);
    if(t!=null){
        entityManager.remove(t);
    }
}

###

如下所示声明我的DAO会在启动我的应用程序时产生错误:

@Autowired
@Qualifier(value="partenaireDao")
private GenericDAO<VscPartenaire> partenaireDao;

错误是:

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean found for dependency ....: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=partenaireDao)}

在org。springframework。豆。工厂支持DefaultListableBeanFactory。raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1463)位于org。springframework。豆。工厂支持DefaultListableBeanFactory。doResolveDependency(DefaultListableBeanFactory.java:1094)位于org。springframework。豆。工厂支持DefaultListableBeanFactory。org上的resolveDependency(DefaultListableBeanFactory.java:1056)。springframework。豆。工厂注释。AutoWiredNotationBeanPostProcessor$AutoWiredFeldElement。注入(AutowiredNotationBeanPostProcessor.java:566)

但这与:

@Repository("partenaireDao")

公共类PartenaireDao扩展了GenericDAO{

public PartenaireDao() {
    super(VscPartenaire.class);
}

}

你能告诉我我的第一次申报有什么问题吗?我不想为每个实体创建dao。

谢谢

共有1个答案

孟谭三
2023-03-14

你能告诉我我的第一份声明有什么问题吗?

您并没有注释genericDao类,所以该类并没有被spring实例化。

我不想为每个实体创建dao。

然后将@Repository(“partenaireDao”)添加到GenericDao类中。

 类似资料:
  • 我正在使用spring开发一个程序,我面临着这个问题,它说: 根据我的观察,问题出在我的服务/服务实施中 服务: 和我的ServiceImpl 请帮助我解决问题,并提供您的解决方案,thx提前。

  • 我正在运行一个JUnit测试,嗯,我的Spring启动项目,我是这样写的: 找到依赖项[com.br.suppcomm.ocp.dao.logindao]得[com.br.suppcomm.ocp.dao.logindao]:需要至少1个具有此依赖项自动候选资格得bean.依赖项注释:{@org.SpringFramework.Beans.Factory.Annotation.AutoWired(

  • 我已经尝试重新启动我的node_dependencies并再次运行,但我不确定还可以尝试什么 编辑:我已经验证了我的node_dependencies目录和插件目录在那里。

  • 我和我的朋友正在做一个Java maven项目,它的设置和我们从Git得到的项目是一样的。在我的设置中,Maven正确地导入了所有依赖项,但对于我的朋友,它找不到任何依赖项。 我们尝试过的事情: 右键单击project,单击maven并单击Reimport。 我们都可以上网,所以这也不是问题。而且,Maven在IntelliJ中设置为自动导入。

  • 我的项目使用的是Spring3.2和Struts2(都使用了注释)。我正在通过Java配置Spring。当我尝试将一个服务注入到一个动作中时,我从Struts2得到以下错误: > 找不到依赖项的[com.ceiwc.mvc.service.IUserService]类型的合格bean:至少需要一个合格的bean作为此依赖项的自动候选项。依赖项注释:{@org.SpringFramework.Bea

  • 我对Clojure和Leiningen是新来的。刚开始工作一个现有的项目。我拉了回购并执行了Lein运行的命令。它抱怨说: “在clojars中找不到项目arcType:service.jose:jar:0.1.0-快照(https://repo.clojars.org/)无法将项目arcType:service.jar:0.1.0-快照从/传输到enonic(https://repo.enoni