java - Hibernate重复更新导致系统变慢直至崩溃

 懒训毛毛_770 发布于 2022-10-29 11:46

系统采用SSH框架,数据库采用db2,在一个重复更新数据库的时候,会发现系统越来越慢,最后到系统直接不能访问,查看日志都没有报错信息,各位大神看看是什么原因。(数据量比较大,其中lettercode加了索引)

@Transactional(propagation = Propagation.REQUIRES_NEW)
@Override
public void bounceIn(String lettercode, String refusereason,
String refusetime, OperateResult result, Log log) {
try {
StringBuilder hql = new StringBuilder("from PrintInfo where 1=1");
ArrayList params = new ArrayList();
if (!"".equalsIgnoreCase(lettercode) || lettercode == null) {
hql.append("and lettercode =? order by sendtime desc");//根据lettercode获取最近的一条数据
params.add(lettercode);
List printInfoList = printInfoDao.listEntityByHQL(
hql.toString(), params.toArray());
if (printInfoList != null && printInfoList.size() > 0) {
PrintInfo printInfo = printInfoList.get(0);
LetterInfo letterInfo = printInfo.getLetterInfo();
String statep = letterInfo.getStatep();
if ("5".equals(statep)) {
printInfo.setRefusereason(refusereason);
DateFormat fmt = new SimpleDateFormat(
"yyyy-MM-dd%2520HH:mm:ss");
Date date = null;
try {
date = fmt.parse(refusetime);
} catch (ParseException e1) {
e1.printStackTrace();
}
printInfo.setRefusetime(date);
printInfoDao.update(printInfo);
letterInfo.setStatep("6");
letterInfoDao.update(letterInfo);
result.setSuccess(true);
result.setResult("退信录入成功");
log.setState("记录");
log.setDescribe("退信录入成功");
} else {
result.setSuccess(false);
result.setResult("只能录入已寄送的信函");
log.setState("警告");
log.setDescribe("退信录入失败");
}
}
} else {
result.setSuccess(false);
result.setResult("没有找到该条记录");
log.setState("警告");
log.setDescribe("查找失败");
}
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
}

}

                            
                                
        
        
    

    
    
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有