Hibernate批量修改数据,为什么修改到一半就停止运行了,前面几天的sql语句输出了,到中间就会停止运行.

LabanYB 2016-12-05 09:05:23
修改的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也是 数据很正常 到一半就停止


...全文
219 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
LabanYB 2016-12-07
  • 打赏
  • 举报
回复
知道原因了 sql语句中 date和数据库date不对应
LabanYB 2016-12-05
  • 打赏
  • 举报
回复
引用 4 楼 u011619071 的回复:
检查一下 是不是数据库某些操作引发了死锁。
、恩 好的 我去看看
LabanYB 2016-12-05
  • 打赏
  • 举报
回复
引用 3 楼 qnmdcsdn 的回复:
[quote=引用 2 楼 qq_31896043 的回复:] [quote=引用 1 楼 qnmdcsdn 的回复:] 首先,没看到哪里跟hibernate有关系。接着,String sql = "update hr_basic_empinfo set empno=,这里不用写update的吗?另外,你可以调用批量提交的方法提高效率,你这是一条一提交
写update也可以的 但是这样还是修改到一半就停止,谢谢,我去改成批量提交[/quote] 修改到一半是什么意思?是两条数据只能更新一条吗?没有什么错误信息?[/quote] 不报错 就是点击修改按钮 浏览器卡着不动 一直在缓存 showsql显示了一半的updatge 的语句 其他的没有 debug 看的
X元素 2016-12-05
  • 打赏
  • 举报
回复
检查一下 是不是数据库某些操作引发了死锁。
  • 打赏
  • 举报
回复
引用 2 楼 qq_31896043 的回复:
[quote=引用 1 楼 qnmdcsdn 的回复:] 首先,没看到哪里跟hibernate有关系。接着,String sql = "update hr_basic_empinfo set empno=,这里不用写update的吗?另外,你可以调用批量提交的方法提高效率,你这是一条一提交
写update也可以的 但是这样还是修改到一半就停止,谢谢,我去改成批量提交[/quote] 修改到一半是什么意思?是两条数据只能更新一条吗?没有什么错误信息?
LabanYB 2016-12-05
  • 打赏
  • 举报
回复
引用 1 楼 qnmdcsdn 的回复:
首先,没看到哪里跟hibernate有关系。接着,String sql = "update hr_basic_empinfo set empno=,这里不用写update的吗?另外,你可以调用批量提交的方法提高效率,你这是一条一提交
写update也可以的 但是这样还是修改到一半就停止,谢谢,我去改成批量提交
  • 打赏
  • 举报
回复
首先,没看到哪里跟hibernate有关系。接着,String sql = "update hr_basic_empinfo set empno=,这里不用写update的吗?另外,你可以调用批量提交的方法提高效率,你这是一条一提交

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧