You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring整合Hibernate报错:Type org.hibernate.SessionFactory not present求助

解决Spring+Hibernate项目中Type org.hibernate.SessionFactory not present错误
  • 检查依赖完整性
    确保项目中包含Hibernate核心及Spring整合Hibernate的必要依赖:
    Maven依赖示例:

    <!-- Spring ORM 整合Hibernate -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
        <version>你的Spring版本</version>
    </dependency>
    <!-- Hibernate核心 -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>匹配Spring的Hibernate版本</version>
    </dependency>
    <!-- MySQL驱动 -->
    <dependency>
        <groupId>com.mysql</groupId>
        <artifactId>mysql-connector-j</artifactId>
        <version>适配你的MySQL版本</version>
        <scope>runtime</scope>
    </dependency>
    
  • 确保版本兼容
    Spring与Hibernate版本必须匹配:

    • Spring 5.x 搭配 Hibernate 5.4.x ~ 5.6.x
    • Spring 6.x 搭配 Hibernate 6.0.x 及以上
      版本不兼容会导致类加载失败,出现找不到SessionFactory的错误。
  • 修正Spring配置
    确认Spring配置中正确配置了SessionFactory:
    Java配置示例:

    @Bean
    public LocalSessionFactoryBean sessionFactory(DataSource dataSource) {
        LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
        sessionFactory.setDataSource(dataSource);
        sessionFactory.setPackagesToScan("你的实体类包路径");
        sessionFactory.setHibernateProperties(hibernateProperties());
        return sessionFactory;
    }
    
    private Properties hibernateProperties() {
        Properties props = new Properties();
        props.put("hibernate.dialect", "org.hibernate.dialect.MySQL8Dialect");
        props.put("hibernate.show_sql", "true");
        props.put("hibernate.hbm2ddl.auto", "update");
        return props;
    }
    

    XML配置示例:

    <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="packagesToScan" value="你的实体类包路径"/>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQL8Dialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
            </props>
        </property>
    </bean>
    
  • 处理模块路径问题(JDK9+)
    如果项目使用模块化(module-info.java),需在模块声明中添加对Hibernate的依赖:

    module your.module.name {
        requires org.hibernate.core;
        requires spring.orm;
    }
    

内容的提问来源于stack exchange,提问作者Ujjwal Mishra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 06:55:11