Hibernate批量修改数据,为什么修改到一半就停止运行了,前面几天的sql语句输出了,到中间就会停止运行.
修改的impl:
public boolean updateEmpInfoByEmpNo2(EmpInfo empinfo) {
Session session = null;
Transaction tr = null;
try {
String sql = "hr_basic_empinfo set empno='"+empinfo.getEmpno()+"', sdate_org='"+empinfo.getSdateOrg()+"', edate_org='"+empinfo.getEdateOrg()+"', bukrs='"+empinfo.getBukrs()+"', rsfw='"+empinfo.getRsfw()+"', rsfw_desc='"+empinfo.getRsfwDesc()+"', rszfw='"+empinfo.getRszfw()+"', rszfw_desc='"+empinfo.getRszfwDesc()+"', orgeh='"+empinfo.getOrgeh()+"', orgeh_desc='"+empinfo.getOrgehDesc()+"', zhiwei='"+empinfo.getZhiwei()+"', zhiwei_desc='"+empinfo.getZhiweiDesc()+"', zhiwu='"+empinfo.getZhiwu()+"', zhiwu_desc='"+empinfo.getZhiwuDesc()+"', emoname='"+empinfo.getEmoname()+"', `group`='"+empinfo.getGroup()+"', exclude='"+empinfo.getExclude()+"', tol_time='"+empinfo.getTolTime()+"', ishr='"+empinfo.getIshr()+"', `status`='"+empinfo.getStatus()+"', sex='"+empinfo.getSex()+"', mbphone='"+empinfo.getMbphone()+"', email='"+empinfo.getEmail()+"', dat02='"+empinfo.getDat02()+"', lastday='"+empinfo.getLastday()+"', jjlxr='"+empinfo.getJjlxr()+"', jjlxrgx='"+empinfo.getJjlxrgx()+"', jjlxrdh='"+empinfo.getJjlxrdh()+"', aedata='"+empinfo.getAedata()+"' where 1 = 1";
session = getSessionFactory().openSession();
tr=session.beginTransaction();
Query query= this.getSession().createSQLQuery(sql);
query.executeUpdate();
tr.commit();
session.close();
} catch (Exception e) {
// TODO: handle exception
}
return false;
}
配置的show_sql 运行时到一半就停止。。。发出来的sql 语句也很正常
action 的逻辑
public String UpdateTwo(){
empInfos1 = empInfoDao.EmpInfoSelectAll();//数据库数据
EmpInfo empInfo1 = new EmpInfo();
for (EmpInfo einfo : empInfos1) {
empInfo1 = new EmpInfo();
if(einfo.getAedata()==null){
EmpInfo info = new EmpInfo();
empInfo1 = empInfoDao.EmpInfoSelectAllByEmpNo(einfo.getEmpno());
info.setId(empInfo1.getId());
info.setEmpno(empInfo1.getEmpno());
info.setSdateOrg(empInfo1.getSdateOrg());
info.setEdateOrg(empInfo1.getEdateOrg());
info.setBukrs(empInfo1.getBukrs());
info.setRsfw(empInfo1.getRsfw());
info.setRsfwDesc(empInfo1.getRsfwDesc());
info.setRszfw(empInfo1.getRszfw());
info.setRszfwDesc(empInfo1.getRszfwDesc());
info.setOrgeh(empInfo1.getOrgeh());
info.setOrgehDesc(empInfo1.getOrgehDesc());
info.setZhiwei(empInfo1.getZhiwei());
info.setZhiweiDesc(empInfo1.getZhiweiDesc());
info.setZhiwu(empInfo1.getZhiwu());
info.setZhiwuDesc(empInfo1.getZhiwuDesc());
info.setGroup(empInfo1.getGroup());
info.setStatus(empInfo1.getStatus());
info.setEmoname(empInfo1.getEmoname());
info.setExclude(empInfo1.getExclude());
info.setTolTime(empInfo1.getTolTime());
info.setIshr(empInfo1.getIshr());
info.setSex(empInfo1.getSex());
info.setMbphone(empInfo1.getMbphone());
info.setEmail(empInfo1.getEmail());//.....
info.setDat02(empInfo1.getDat02());
info.setLastday(empInfo1.getLastday());
info.setJjlxr(empInfo1.getJjlxr());//...
info.setJjlxrgx(empInfo1.getJjlxrgx());
info.setJjlxrdh(empInfo1.getJjlxrdh());
info.setAedata("1");
empInfoDao.updateEmpInfoByEmpNo2(info);//数据到一半在这里停止
}
}
return SUCCESS;
}
debug也是 数据很正常 到一半就停止