HibernateTemplate的奇怪问题

问题描述

用getHibernateTemplate().save(obj)保存数据的时候,总是出现延迟,也就是说:我进行了插入后,不能立即在数据库看到我新插入的数据,必须等一会才能看到,找了半天也没找到原因。请教下,是为什么呢?

解决方案

如果用得是getHibernateTemplate(),那么程序会自动flush ,不会这样啊,你这么设置了骂?在配置文件里设置hibernate的autocommit为true <property name="hibernate.connection.autocommit">true </property>
解决方案二:
1.在代码中调用HibernateDaoSupport的getSession().flush();2.设置autocommit为true,等待transaction完成.看样子楼主的项目使用了spring的声明式事务。所以不推荐getSession().getTransaction().commit().
解决方案三:
getHibernateTemplate().save(obj)不会立即保存到数据库。。只要在调用session.flush();或者transtractin.commit()会将内存中的数据刷新到数据库中。。另外你在当前session中在更新一个对象。。然后在进行查询。。。Hibernate为了同步缓存。会立即刷新session缓存
解决方案四:
事务,Hibernate再事务结束的时候才会把缓存中的数据同步到数据库,你的save方法只是把对象的状态保存到缓存中了,如果想马上看到,可以试一下getSession().flush();

时间: 2024-07-31 11:16:25

HibernateTemplate的奇怪问题的相关文章

tomcat-关于Tomcat奇怪的问题,困扰好几天了!

问题描述 关于Tomcat奇怪的问题,困扰好几天了! 网站的Web容器用的Tomcat(64位),jdk1.7,mysql5.6,在执行一个很简单的查询方法时,所有逻辑执行完成,没有任何问题.当跳出方法进入spring 事物提交时,报NullPointerException,这个异常貌似是由Invocationtargetexception引起的.然后关闭Tomcat,我把work下的缓存文件删除,重启tomcat就恢复正常了.但是有时候再次重启tomcat后这个问题就又出现了,有人遇到过这个问

错 错 错 错 很奇怪 帮看看

问题描述 ERROR(?:?)|AnSQLExceptionwasprovokedbythefollowingfailure:java.lang.NumberFormatException:Forinputstring:"028900200001"2010-12-910:48:26org.apache.catalina.core.StandardWrapperValveinvoke严重:Servlet.service()forservletdefaultthrewexceptionja

java-新手问一个很奇怪的问题

问题描述 新手问一个很奇怪的问题 class Demo { int num = 1; int add = 2; Demo() { num = 5; add = 6; } void show() { System.out.println("Fu num="+num+" Fu add="+add); } } class DemoA extends Demo { DemoA() { this.num = 3; this.add = 4; } void show() { S

ios-遇到了一个奇怪的问题

问题描述 遇到了一个奇怪的问题 今天我改了几处代码,在界面上屏蔽删除了一些东西,在模拟器上运行没问题,但是部署到真机上后,竟然是没改代码前的效果,那些删掉的屏蔽掉的东西竟然还在.这是怎么回事? 试了好几次都这样,把真机上的app删掉重装还是这样. 解决方案 好奇怪,试试clean一下 解决方案二: 把你开发机器上的生成文件都删除了,重新生成,再部署. 解决方案三: 在分析相关参数对性能影响的时候,遇到个奇怪的问题.在效果全开的情况下:1.?????? 单独关闭Caustics效果2.??????

spring hibernate-spring-orm 的hibernateTemplate update 偶尔更新不成功。

问题描述 spring-orm 的hibernateTemplate update 偶尔更新不成功. 调用org.springframework.orm-3.1.1.RELEASE.jar包的HibernateTemplate的update方法,更新数据库的偶尔更新不成功.求大神帮助,跪谢了.... 解决方案 你更新数据的时候,是不是没有打开Hibernate的事务机制

编译-很奇怪的“error C1083: 无法打开包括文件”!

问题描述 很奇怪的"error C1083: 无法打开包括文件"! 程序的事情真是无奇不有,昨天碰到一个问题,真是百思不得其解,编译时报告我所写的一个头文件的引用找不到,查了 配置属性->C/C++->常规->附加包含目录,是正常的,目录本来就加在里面了,更怪的是昨天碰到第一次,后来我在那个目录下建另一个头文件,然后将总是说找不到的头文件的内容copy过去,再引用到新的头文件,正常了,最后我干脆删掉总说找不到那个头文件,然后重命名新的头文件为原找不到文件的名称,也正常

ios-removeFromSuperview 不起作用了,奇怪问题

问题描述 removeFromSuperview 不起作用了,奇怪问题 简单上代码吧. 我在更新UIView时候需要先将其中已经存在的一些移除掉 if ([NSThread currentThread] == [NSThread mainThread]){ NSLog(@"before remove:%ld", [[self subviews] count]); [Helper removeAllSubViews:self]; NSLog(@"after remove:%ld

c++ widnows-GetQueuedCompletionStatus函数奇怪的错误?

问题描述 GetQueuedCompletionStatus函数奇怪的错误? 本人在UDP的客户端对socket使用了完成端口,在工作线程中,GetQueuedCompletionStatus返回0,GetLastError错误码为0x36E: $errhr 0x000003e6 内存位置访问无效.,这是什么问题呢?

Oracle表连接的奇怪问题

 今天在做计费报表的时候,由于粗心,拿数据的的脚本给写错了,却让我发现了一个很奇怪的问题,下面来让我介绍我发现的这个问题:数据库有表  CHARGE_REF , CLIENT_INVOICE ,CLIENT_INVHDR.其中CHARGE_REF表是保存的收费类型的数据:CLIENT_INVHDR表保存的是发票头部信息,CLIENT_INVOICE表保存的是发票的详细信息,大体如下图所示  我当时拿数据的时候的脚本大体是这样的(这里做了简化处理) SELECT C.CDESCPT, I.CNTR