简体   繁体   English

Spring 4从休眠4迁移到5会话返回null

[英]Spring 4 Migrate from hibernate 4 to 5 session return null

After upgrading libs version to last and refreshing configurations session start giving null objects. 将libs版本升级到最新版本并刷新配置会话后,会话开始提供空对象。 I tried with different configurations, but this may be better from all. 我尝试了不同的配置,但总的来说可能会更好。 Could you help and explain what happened with upgrade? 您能帮忙解释一下升级发生了什么吗?

    <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");

                }
            };
        }

您需要确保您导入的LocalSessionFactoryBean是休眠5

org.springframework.orm.hibernate5.LocalSessionFactoryBean

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM