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

Spring5与Hibernate5升级后无报错但数据无法存入数据库问题求助

问题排查点

  • 首先核对bean id大小写匹配问题:你配置中providerDao注入sessionFactory时引用的是AbcSessionFactory,但实际定义的SessionFactory bean id为ABCSessionFactory,Spring bean id大小写敏感,若实际配置确实存在该差异,会导致注入异常,优先修正该配置。
  • 检查事务生效配置:你已配置HibernateTransactionManager,但需确认两点:
    1. 配置文件中是否开启了事务注解驱动,添加如下配置:
    <tx:annotation-driven transaction-manager="txManager"/>
    
    1. 调用providerDao.save()的上层业务方法是否添加了@Transactional注解,且注解是Spring的org.springframework.transaction.annotation.Transactional,而非javax的同名注解。
  • 验证刷库逻辑:可在saveOrUpdate后手动添加刷库操作测试,如下:
    getHibernateTemplate().saveOrUpdate(instance);
    getHibernateTemplate().flush(); // 手动触发刷入数据库
    
    若添加后数据可正常写入,说明原逻辑无事务触发自动flush,本质还是事务配置问题。
  • 日志排查:将${abc.showSql}配置值改为true,同时新增hibernate配置:
    <prop key="hibernate.format_sql">true</prop>
    <prop key="hibernate.use_sql_comments">true</prop>
    
    运行时观察控制台是否打印对应的INSERT/UPDATE语句,若无SQL打印,说明操作未触发持久化,优先排查事务与SessionFactory注入问题。
  • 检查实体映射配置:核对Provider.hbm.xml的主键生成策略,若为主键手动赋值策略(如assigned),需确认Provider实例已正确设置主键值,否则会导致持久化失败无报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:24:04