用getHibernateTemplate().save(obj)保存数据的时候,总是出现延迟,也就是说:我进行了插入后,不能立即在数据库看到我新插入的数据,必须等一会才能看到,找了半天也没找到原因。请教下,是为什么呢?
如果用得是getHibernateTemplate(),那么程序会自动flush ,不会这样啊,你这么设置了骂?
在配置文件里设置hibernate的autocommit为true
true
事务,Hibernate再事务结束的时候才会把缓存中的数据同步到数据库,你的save方法只是把对象的状态保存到缓存中了,如果想马上看到,可以试一下getSession().flush();
getHibernateTemplate().save(obj)
不会立即保存到数据库。。
只要在调用session.flush();
或者transtractin.commit()会将内存中的数据刷新到数据库中。。
另外你在当前session中在更新一个对象。。然后在进行查询。。。Hibernate为了同步缓存。会立即刷新session缓存
1.在代码中调用HibernateDaoSupport的
[code="java"]getSession().flush();[/code]
2.设置autocommit为true,等待transaction完成.
看样子楼主的项目使用了spring的声明式事务。
所以不推荐getSession().getTransaction().commit().