Swing + Hibernate 忽略缓存直接提取数据库

HerryDong 2010-06-12

swing使用hibernate查询数据时,因缓存问题使得不同进程修改的数据不能及时更新。即便使用来了clear清理一级缓存也没有有效的更新。

试验后发现,必须在查询前插入一个“空事务”,然后就可以有效的直接刷新数据库中的变更了。

环境:myeclipse8.5,hibernate3.3,jdk1.6.18

public List findAll() {
		log.debug("finding all TTypeProperty instances");
		try {

			getSession().beginTransaction();
			getSession().getTransaction().commit();

			getSession().clear();
  
			String queryString = "from TTypeProperty o order by o.targetId asc";
			Query queryObject = getSession().createQuery(queryString);
	 
			return queryObject.list();
		} catch (RuntimeException re) {
			log.error("find all failed", re);
			throw re;
		}
	}

相关推荐