Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 错误:找不到符合依赖项条件的bean_Spring_Spring Mvc_Jpa_Dao - Fatal编程技术网

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

Spring 错误:找不到符合依赖项条件的bean,spring,spring-mvc,jpa,dao,Spring,Spring Mvc,Jpa,Dao,我用SpringMVC4开发了一个web应用程序。对于DAO层,我添加了一个类GenericDAO:`public class GenericDAO{ @PersistenceContext private EntityManager entityManager; private Class<T> parametrizedType; public GenericDAO(Class<T> parametrizedType) { this.parametrized

我用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);
    }
}
public PartenaireDao() {
    super(VscPartenaire.class);
}
位于org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1463) 位于org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1094) 位于org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1056) 位于org.springframework.beans.factory.annotation.AutoWiredNotationBeanPostProcessor$AutoWiredFeldElement.inject(AutoWiredNotationBeanPostProcessor.java:566)

但这与:

@Repository("partenaireDao")
公共类PartenaireDao扩展了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);
    }
}
public PartenaireDao() {
    super(VscPartenaire.class);
}
}

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

谢谢

你能告诉我我的第一次申报有什么问题吗

您是带注释的genericDao类,因此该类不是由spring实例化的。

我不想为每个实体创建dao


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

感谢您的回复,即使我将@Repository添加到GenericDao,我也有相同的结果error@Repository公共类GenericDAO{@PersistenceContext private EntityManager EntityManager;…..如果我添加@Repository(“partenaireDao”),我读了它,我不理解对于GenericDao类,其他实体如何?