需要找不到类型为'org.hibernate.SessionFactory'的bean

问题描述 投票:0回答:2

我正在尝试使用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>

enter image description herehttps://i.stack.imgur.com/PrVj5.pngenter image description herehttps://i.stack.imgur.com/bJ21k.png

hibernate spring-boot
2个回答
0
投票

这通常发生在您错过在实现类中添加@Service或@Component注释的情况下(在您的情况下为ClientDAOImpl类)>


0
投票

将此添加到您的配置文件:

© www.soinside.com 2019 - 2024. All rights reserved.