hibernate saveOrupdate问题
遇到一个很奇怪的问题,在页面有个维护代码表的功能,数据库存dm和mc, 我把dm和mc都写到了缓存里,然后每次新增或修改代码表的时候都去刷新缓存,然后维护代码表的时候后台用saveOrUpdate方法保存的时候 数据库中的数据已经改变了, 但是刷新缓存后 缓存中的值没有变化, 再用saveOrUpdate保存数据,然后刷新缓存,很奇怪,上一次修改的值在缓存中出现了 而新的值在缓存中依然没有, 感觉像是慢了半拍一样,像是先执行刷新缓存然后保存数据库。 但是更换save和update方法就没有问题。好奇怪代码如下:
/** 保存维护类型 */
Date now = Utils.now();
long id = data.getLong(SurveyTypeInfo.SURVEY_TYPE_DM);
if(id > 0){
SurveyTypeInfo info = this.findEntityById(SurveyTypeInfo.class, id);
info.setSurveyTypeUdate(now);
info.setSurveyTypeMc(data.getString(SurveyTypeInfo.SURVEY_TYPE_MC));
this.getEntityPersister().update(info);
} else{
data.set(SurveyTypeInfo.SURVEY_TYPE_UDATE, now);
data.set(SurveyTypeInfo.SURVEY_TYPE_SDATE, now);
data.set(SurveyTypeInfo.VALID_FLAG, "1");
this.getEntityPersister().save(Assembler.mapToEntity(data, SurveyTypeInfo.class));
}
//saveOrUpdate 刷新缓存慢半拍
//this.getEntityPersister().saveOrUpdate(Assembler.mapToEntity(data, SurveyTypeInfo.class));
/** 刷新缓存 dm_survey_type */
KitAppCacheManager.rebuildDictCache(SurveyTypeInfo.CACHE_NAME);
补充:Java , Java EE