Buscar
Social
Ofertas laborales ES

Foro sobre Java EE > Spring-Hibernate

Hola

Estoy empezando con estas dos tecnologias, me está dando el siguiente error:

No matching bean of type [es.arf.spring.jdbc.DemoSpringJdbcDao] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

por mucho que miro no doy con la solución. Os paso lo que tengo en cada fichero:

configuración:


<property name="driverClassName" value="${demo.spring.jdbc.driver}" />
<property name="url" value="${demo.spring.datasource.url}" />
<property name="username" value="${demo.spring.datasource.username}" />
<property name="password" value="${demo.spring.datasource.password}" />




<property name="dataSource" ref="dataSource" />
<property name="annotatedClasses">
<list>
<value>es.arf.spring.jdbc.domain.Pais</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
</props>
</property>



<property name="sessionFactory" ref="sessionFactory" />

fichero Pais.java:

package es.arf.spring.jdbc.domain;

import java.io.Serializable;
import javax.persistence.Entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.NamedQueries;
import org.hibernate.annotations.NamedQuery;


@SuppressWarnings("serial")
@Entity
@Table(name = "pais")
public class Pais implements Serializable {

@Id
@GeneratedValue
@Column(name = "codigo")
private String codigo;

@Column(name = "nombre")
private String nombre;



public String getCodigo() {
return codigo;
}
public void setCodigo(String codigo) {
this.codigo = codigo;
}


public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}

@Override
public String toString() {
return "[ codigo: " + codigo + ", nombre: " + nombre + " ]";
}

}

fichero ListadoControllerAnotaciones.java

@Controller
public class ListadoControllerAnotaciones extends AbstractController {

@Autowired(required=true)
private DemoSpringJdbcDao dao;

@Override
@RequestMapping(value="/listadoPaisesAnotaciones.htm")
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {

//dao = new DemoSpringJdbcDaoImpl();

Pais pais = new Pais();
pais.setCodigo("3");
pais.setNombre("Alemania");

dao.delete(pais);


return new ModelAndView("listadoPaisesAnotaciones");
}
}

fichero DemoSpringJdbcDaoImpl.java

@Repository
public class DemoSpringJdbcDaoImpl extends HibernateDaoSupport implements DemoSpringJdbcDao {

@Autowired
private SessionFactory sessionFactory;

/*
@Autowired
public DemoSpringJdbcDaoImpl(SessionFactory sessionFactory) {
super.setSessionFactory(sessionFactory);
}
*/

@Transactional(readOnly = true)
public void delete(Pais pais) {
//getHibernateTemplate().delete(pais);
sessionFactory.getCurrentSession().delete(pais);
}
}

fichero DemoSpringJdbcDao.java

import es.arf.spring.jdbc.domain.Pais;

public interface DemoSpringJdbcDao {

void delete(Pais pais);

}

como podeis ver, estoy utilizando anotaciones.

La parte de configuración no consigo que se vea correctamente.

Muchas gracias

octubre 15, 2012 | Registered Commenterarf2774