Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要类型为'的bean;org.hibernate.SessionFactory';找不到_Hibernate_Spring Boot - Fatal编程技术网

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

需要类型为'的bean;org.hibernate.SessionFactory';找不到,hibernate,spring-boot,Hibernate,Spring Boot,我正在尝试用Spring Boot开发一个CRUD web应用程序。我的DAO部分使用Hibernate。当我尝试使用主应用程序时,收到以下错误消息: 接口客户端DAO: public void agregar(Cliente cliente); public void editar(Cliente cliente); public void remove(Integer idCliente); public Cliente obtenerCliente(Integer idCliente

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

接口客户端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();
类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();
}
类客户控制器:

@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";
}
@Autowired
私人客户服务;
@请求映射(“/index”)
公共字符串设置窗体(映射){
Cliente Cliente=新客户();
地图放置(“客户”,客户);
put(“clientlist”,clientservice.obtenerTodosClientes());
返回“客户”;
}
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>
ma.nestides.facturas

这通常发生在您没有在实现类中添加@Service或@Component注释时,在您的示例ClientDAOImpl类中,将其添加到您的配置文件中:

@Bean  
public SessionFactory sessionFactory(HibernateEntityManagerFactory entityManagerFactory){  
    return entityManagerFactory.getSessionFactory();  
} 
然后,在application.properties文件中,添加

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

希望有帮助

@Autowired private SessionFactory SessionFactory;应该在那里。这回答了你的问题吗?你好,谢谢你的回答。你能告诉我我的配置文件在Spring启动应用程序上的确切位置吗?非常感谢。