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; } }