Spring 错误:找不到符合依赖项条件的bean
我用SpringMVC4开发了一个web应用程序。对于DAO层,我添加了一个类GenericDAO:`public class GenericDAO{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
@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类,其他实体如何?