Java Spring4从Hibernate4迁移到5会话返回null

Java Spring4从Hibernate4迁移到5会话返回null,java,spring,hibernate,Java,Spring,Hibernate,将libs版本升级到上一版本并刷新配置后,会话开始提供空对象。 我尝试了不同的配置,但这可能会更好。 您能帮我解释一下升级过程中发生了什么吗 <spring.version>4.2.5.RELEASE</spring.version> <hibernate.version>5.1.0.Final</hibernate.version> @Bean public LocalSessionFa

将libs版本升级到上一版本并刷新配置后,会话开始提供空对象。 我尝试了不同的配置,但这可能会更好。 您能帮我解释一下升级过程中发生了什么吗

    <spring.version>4.2.5.RELEASE</spring.version>
    <hibernate.version>5.1.0.Final</hibernate.version>  




        @Bean
        public LocalSessionFactoryBean sessionFactory() {
            final LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
            sessionFactory.setDataSource(restDataSource());
            sessionFactory.setPackagesToScan(new String[]{"com.project"});
            sessionFactory.setHibernateProperties(hibernateProperties());

            return sessionFactory;
        }


        @Bean
        public HibernateTransactionManager transactionManager() {
            HibernateTransactionManager txManager = new HibernateTransactionManager();
            txManager.setSessionFactory(sessionFactory().getObject());
            return txManager;
        }

        @Bean
        public DataSource restDataSource() {
            final DriverManagerDataSource dataSource = new DriverManagerDataSource(env.getProperty("jdbc.url"),
                    env.getProperty("jdbc.user"), env.getProperty("jdbc.pass"));
            dataSource.setDriverClassName(env.getProperty("jdbc.driverClassName"));
            return dataSource;
        }

        @Bean
        public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
            return new PersistenceExceptionTranslationPostProcessor();
        }

        final Properties hibernateProperties() {
            return new Properties() {
                {
                    setProperty("hibernate.dialect", env.getProperty("hibernate.dialect"));
                    setProperty("hibernate.show_sql", env.getProperty("hibernate.show_sql"));
                    setProperty("hibernate.current_session_context_class", "org.springframework.orm.hibernate5.SpringSessionContext");
                    setProperty("hibernate.implicit_naming_strategy","org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyHbmImpl");
                    setProperty("hibernate.format_sql","false");
                    setProperty("hibernate.use_sql_comments","false");
                    setProperty("hibernate.id.new_generator_mappings","true");
                    setProperty("hibernate.enable_lazy_load_no_trans","true");
                    setProperty("hibernate.max_fetch_depth","1");
                    setProperty("hibernate.default_batch_fetch_size","16");

                }
            };
        }
4.2.5.1版本
5.1.0.1最终版本
@豆子
公共LocalSessionFactoryBean sessionFactory(){
最终LocalSessionFactoryBean sessionFactory=新的LocalSessionFactoryBean();
setDataSource(restDataSource());
sessionFactory.setPackagesToScan(新字符串[]{“com.project”});
setHibernateProperties(hibernateProperties());
返回工厂;
}
@豆子
公共HibernateTransactionManager事务管理器(){
HibernateTransactionManager txManager=新的HibernateTransactionManager();
txManager.setSessionFactory(sessionFactory().getObject());
返回txManager;
}
@豆子
公共数据源restDataSource(){
final DriverManager数据源dataSource=新的DriverManager数据源(env.getProperty(“jdbc.url”),
env.getProperty(“jdbc.user”)、env.getProperty(“jdbc.pass”);
setDriverClassName(env.getProperty(“jdbc.driverClassName”);
返回数据源;
}
@豆子
公共持久性ExceptionTranslationPostProcessor exceptionTranslation(){
返回新的PersistenceExceptionTranslationPostProcessor();
}
最终属性hibernateProperties(){
返回新属性(){
{
setProperty(“hibernate.dial”,env.getProperty(“hibernate.dial”);
setProperty(“hibernate.show_sql”,env.getProperty(“hibernate.show_sql”);
setProperty(“hibernate.current_session_context_class”,“org.springframework.orm.hibernate5.SpringSessionContext”);
setProperty(“hibernate.implicit_naming_strategy”、“org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyHbmImpl”);
setProperty(“hibernate.format_sql”,“false”);
setProperty(“hibernate.use_sql_comments”,“false”);
setProperty(“hibernate.id.new_生成器_映射”,“true”);
setProperty(“hibernate.enable_lazy_load_no_trans”,“true”);
setProperty(“hibernate.max_fetch_depth”,“1”);
setProperty(“hibernate.default\u batch\u fetch\u size”,“16”);
}
};
}

您需要确保导入的
LocalSessionFactoryBean
是hibernate 5

org.springframework.orm.hibernate5.LocalSessionFactoryBean

Thx的答案是,我的导入有5个版本,但这并没有解决问题(@BabyGluk你在你的控制台中看到任何异常吗?有趣的是,我在日志中没有任何异常。我从sessionFactory获取会话并根据条件从中获取对象,结果为空,但当我恢复配置和pom时,在旧版本上都可以正常工作