Hibernate spring 整合数据只存在缓存而没有提交给数据库的解决办法

在Petshop项目中遇到注册功能的问题,使用HibernateTemplate.save()方法保存用户信息时,数据只存在于缓存中并未提交到数据库。问题在于Hibernate配置,虽然在Spring配置文件中指定了Hibernate配置文件的位置,但没有完全集成Hibernate配置。解决方法是将hibernate.cfg.xml文件的内容全部引入到Spring配置文件中,并设置hibernate.connection.autocommit为true,以确保事务自动提交。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

petshop项目做了好长时间了,给自己两巴掌先。

 

    今天做这个注册功能的时候,页面都能够跳转,action也能够执行,就是运用的hibernatetemplate.save()方法将用户注册的信息提交的数据库的时候,数据库怎么也没有反应,只有关掉tomcat才能录入数据。

    于是立刻想到可能是提交到了缓存中,没有提交到数据库,也就是事务没有提交。

    上网搜索了半天,终于发现了问题。已经解决,希望对遇到这个问题的朋友有一个帮助。

 

    我主要是没有把hibernate,xml文件的内容全部写到spring文档里,而只是在spring文档里面做了如下配置,让他认识hibernate文档,然后自己读取。    

    <bean id="sessionFactory"
  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  <property name="configLocation">
   <value>/WEB-INF/hibernate.cfg.xml</value>hibernate文件路径
  </property>
  <!--property name="dataSource">
   <ref bean="dataSource" />
  </property-->
  <property name="hibernateProperties">
   <props>
    <prop key="hibernate.dialect">
     org.hibernate.dialect.Oracle9Dialect
    </prop>
    <prop key="hibernate.connection.autocommit">自动提交
     true
    </prop>

   </props>
  </property>

这样就能够解决问题了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值