我正在尝试使用Spring Boot开发CRUD Web应用程序。我将Hibernate用于我的DAO部分。当我尝试午餐我的主应用程序时,我收到以下错误消息:
Interface Cliente DAO:
public void agregar(Cliente cliente);
public void editar(Cliente cliente);
public void remove(Integer idCliente);
public Cliente obtenerCliente(Integer idCliente);
public List obtenerTodosClientes();
Class ClienteDAOImpl
@Autowired
private SessionFactory session;
@Override
public void agregar(Cliente cliente) {
session.getCurrentSession().save(cliente);
}
@Override
public void editar(Cliente cliente) {
session.getCurrentSession().update(cliente);
}
@Override
public void remove(Integer idCliente) {
session.getCurrentSession().delete(obtenerCliente(idCliente));
}
@Override
public Cliente obtenerCliente(Integer idCliente) {
return (Cliente) session.getCurrentSession().get(Cliente.class, idCliente);
}
@Override
public List obtenerTodosClientes() {
return session.getCurrentSession().createQuery("from Cliente").list();
}
实体客户:
@Id @GeneratedValue
private Integer idCliente;
private String iceCliente;
private String nombreCliente;
private String apellidoCliente;
private String direccionCliente;
private String telefonoCliente;
private String emailCliente;
private TipoCliente tipoCliente;
private String cuidadCliente;
public Cliente() {
super();
}
public Cliente(String iceCliente, String nombreCliente, String apellidoCliente, String direccionCliente,
String telefonoCliente, String emailCliente, TipoCliente tipoCliente, String cuidadCliente) {
super();
this.iceCliente = iceCliente;
this.nombreCliente = nombreCliente;
this.apellidoCliente = apellidoCliente;
this.direccionCliente = direccionCliente;
this.telefonoCliente = telefonoCliente;
this.emailCliente = emailCliente;
this.tipoCliente = tipoCliente;
this.cuidadCliente = cuidadCliente;
}
public Integer getIdCliente() {
return idCliente;
}
public void setIdCliente(int idCliente) {
this.idCliente = idCliente;
}
public String getIceCliente() {
return iceCliente;
}
public void setIceCliente(String iceCliente) {
this.iceCliente = iceCliente;
}
public String getNombreCliente() {
return nombreCliente;
}
public void setNombreCliente(String nombreCliente) {
this.nombreCliente = nombreCliente;
}
public String getApellidoCliente() {
return apellidoCliente;
}
public void setApellidoCliente(String apellidoCliente) {
this.apellidoCliente = apellidoCliente;
}
public String getDireccionCliente() {
return direccionCliente;
}
public void setDireccionCliente(String direccionCliente) {
this.direccionCliente = direccionCliente;
}
public String getTelefonoCliente() {
return telefonoCliente;
}
public void setTelefonoCliente(String telefonoCliente) {
this.telefonoCliente = telefonoCliente;
}
public String getEmailCliente() {
return emailCliente;
}
public void setEmailCliente(String emailCliente) {
this.emailCliente = emailCliente;
}
public TipoCliente getTipoCliente() {
return tipoCliente;
}
public void setTipoCliente(TipoCliente tipoCliente) {
this.tipoCliente = tipoCliente;
}
public String getCuidadCliente() {
return cuidadCliente;
}
public void setCuidadCliente(String cuidadCliente) {
this.cuidadCliente = cuidadCliente;
}
Interface ClienteService:
public void agregar(Cliente cliente);
public void editar(Cliente cliente);
public void remove(Integer idCliente);
public Cliente obtenerCliente(Integer idCliente);
public List obtenerTodosClientes();
Class ClienteServiceImpl:
@Autowired
private ClienteDAO clienteDAO;
@Transactional
public void agregar(Cliente cliente) {
clienteDAO.agregar(cliente);
}
@Transactional
public void editar(Cliente cliente) {
clienteDAO.editar(cliente);
}
@Transactional
public void remove(Integer idCliente) {
clienteDAO.remove(idCliente);
}
@Transactional
public Cliente obtenerCliente(Integer idCliente) {
return clienteDAO.obtenerCliente(idCliente);
}
@Transactional
public List obtenerTodosClientes() {
return clienteDAO.obtenerTodosClientes();
}
Class ClienteController:
@Autowired
private ClienteService clienteService;
@RequestMapping("/index")
public String setupForm(Map<String, Object> map) {
Cliente cliente = new Cliente();
map.put("cliente", cliente);
map.put("clienteList", clienteService.obtenerTodosClientes());
return "cliente";
}
pom.xml:
<groupId>ma.nestideas.facturas</groupId>
<artifactId>nestideas-facturas</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>nestideas-facturas</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- <dependency> -->
<!-- <groupId>org.springframework.boot</groupId> -->
<!-- <artifactId>spring-boot-starter-data-jdbc</artifactId> -->
<!-- </dependency> -->
<dependency>
-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.1.5.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.1.5.Final</version>
</dependency>
<!-- <dependency> -->
<!-- <groupId>org.springframework.boot</groupId> -->
<!-- <artifactId>spring-boot-devtools</artifactId> -->
<!-- <scope>runtime</scope> -->
<!-- <optional>true</optional> -->
<!-- </dependency> -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<!-- <version>5.1.39</version>$NO-MVN-MAN-VER$ -->
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
https://i.stack.imgur.com/PrVj5.pnghttps://i.stack.imgur.com/bJ21k.png
这通常发生在您错过在实现类中添加@Service或@Component注释的情况下(在您的情况下为ClientDAOImpl类)>
将此添加到您的配置文件: