当前位置:编程学习 > JAVA >>

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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,