使用Hibernate SQLQuery或Query做查询时,默认从缓存中获取数据,SQLQuery有个setCacheable( )方法,sqlQuery.setCacheable(false)为不从缓存中读取数据,
sqlQuery.setCacheable(true)为从缓存中获取数据。
这是我在项目中遇到的查询缓存问题,之前没次切换用户查询时,总是查到上一个人的记录, 设置sqlQuery.setCacheable(false)之后就好了。
SQLQuery sqlQuery = economicContractDao.getSession().createSQLQuery(sql.toString()).addEntity(EconomicContractEntity.class);
sqlQuery.setCacheable(false);