Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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
spring boot 1.5.1.1版本与hibernate会话工厂创建有关的问题 创建Hibernate SessionFactory时出错_Spring_Hibernate_Spring Boot - Fatal编程技术网

spring boot 1.5.1.1版本与hibernate会话工厂创建有关的问题 创建Hibernate SessionFactory时出错

spring boot 1.5.1.1版本与hibernate会话工厂创建有关的问题 创建Hibernate SessionFactory时出错,spring,hibernate,spring-boot,Spring,Hibernate,Spring Boot,org.springframework.transaction.CannotCreateTransactionException:无法为事务打开Hibernate会话;嵌套的异常是java.lang.NoClassDefFoundError:org/hibernate/engine/transaction/spi/TransactionContext 我的POM文件 ============ <dependencies> <dependency>

org.springframework.transaction.CannotCreateTransactionException:无法为事务打开Hibernate会话;嵌套的异常是java.lang.NoClassDefFoundError:org/hibernate/engine/transaction/spi/TransactionContext

我的POM文件

============

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
    </dependencies>

解决方案是导入
org.springframework.orm.hibernate5.*

验证您的类路径上是否有正确的hibernate版本,并且没有冲突的版本,当不同的spring模块依赖或引入不同的可传递依赖时,可能会发生冲突。您的pom似乎很好,我认为您缺少transactionManager配置,请尝试添加
HibernateTransactionManager
LocalSessionFactoryBean的包是什么?并向我们展示TransactionManager的创建方法。。对于imports,问题在于Spring和Hibernate版本之间的冲突。我使用的是org.springframework.orm.hibernate4.*,现在,我将该版本更改为org.springframework.orm.hibernate5.*。问题解决了。但是在SpringBoot中,我们没有在pom.xml文件中提供任何依赖版本的详细信息,这难道不是一个bug吗。
@Bean
  public LocalSessionFactoryBean sessionFactory() {
    LocalSessionFactoryBean sessionFactoryBean = new LocalSessionFactoryBean();
    sessionFactoryBean.setDataSource(dataSource());
    sessionFactoryBean.setPackagesToScan(ENTITYMANAGER_PACKAGES_TO_SCAN);
    Properties hibernateProperties = new Properties();
    hibernateProperties.put("hibernate.dialect", HIBERNATE_DIALECT);
    hibernateProperties.put("hibernate.show_sql", HIBERNATE_SHOW_SQL);
    hibernateProperties.put("hibernate.hbm2ddl.auto", HIBERNATE_HBM2DDL_AUTO);
    sessionFactoryBean.setHibernateProperties(hibernateProperties);

    return sessionFactoryBean;
  }