当前位置: 首页 > 知识库问答 >
问题:

需要“org.hibernate.sessionFactory”类型得bean,但未找到[重复]

龙枫
2023-03-14

我正在尝试用Spring Boot开发一个CRUD web应用程序。我将Hibernate用于我的DAO部分。当我尝试午餐我的主应用程序,我收到以下错误消息:

接口客户端DAO:

public void agregar(Cliente cliente);

public void editar(Cliente cliente);

public void remove(Integer idCliente);

public Cliente obtenerCliente(Integer idCliente);

public List obtenerTodosClientes();

类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;
}
public void agregar(Cliente cliente);

public void editar(Cliente cliente);

public void remove(Integer idCliente);

public Cliente obtenerCliente(Integer idCliente);

public List obtenerTodosClientes();
@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();
}

类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>

共有1个答案

法和硕
2023-03-14

将此添加到配置文件:

@Bean  
public SessionFactory sessionFactory(HibernateEntityManagerFactory entityManagerFactory){  
    return entityManagerFactory.getSessionFactory();  
} 

然后,在application.properties文件中,添加

spring.jpa.properties.hibernate.current_session_context_class=org.springframework.orm.hibernate5.SpringSessionContext

希望有帮助!

 类似资料: