2017-03-20 2 views
0

ich eine Web-Anwendung mit Feder mvc 4. für DAO Schicht developp, füge ich eine Klasse GenericDAO: `public class GenericDAO {Fehler: Keine Warte Bohne für Abhängigkeits gefunden

@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); 
    } 
} 

}`

erklärt meine DAO wie unten erzeugen einen Fehler meine Anwendung Durring Start:

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

Fehler ist:

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)} 

bei org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound (DefaultListableBeanFactory.java:1463) bei org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency (DefaultListableBeanFactory.java:1094) bei org .springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency (DefaultListableBeanFactory.java:1056) bei org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject (AutowiredAnnotationBeanPostProcessor.java:566)

aber es ist OK mit:

@Repository("partenaireDao") 

public class PartenaireDao erweitert GenericDAO {

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

}

können Sie mir, was seine falsch mit meiner ersten Erklärung sagen? Ich möchte nicht Dao pro Einheit erstellen.

Dank

Antwort

0

können Sie mir sagen, was seine falsch mit meiner ersten Erklärung?

Sie waren nicht kommentierte genericDao Klasse, so dass Klasse nicht durch Feder instanziiert.

Ich möchte nicht erstellen Dao pro Einheit.

dann @Repository("partenaireDao") zu GenericDao Klasse hinzufügen.

+0

danke für die Antwort, auch wenn ich @Repository zu GenericDAO hinzufügen, habe ich den gleichen Fehler – user19096

+0

Können Sie Ihre Frage mit dem neuesten Code aktualisieren? –

+0

@Repository public class GenericDAO { \t \t @ PersistenceContext \t privaten EntityManager EntityManager; \t ..... – user19096

Verwandte Themen