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

java 批量修改 很困惑 求解

最近遇到一系列怪问题
java 做批量修改的时候有时候是全部成功,有时候只修改部分。这是为什么?
全选,然后点批改弹出这个页面。
代码如下:
/**
 * 批量修改建库数据信息
 * @param condition
 */
public void updateBuildKuInfo(Map<String,String> condition,List<String> arrayList) throws Exception{
System.out.println(condition);
WebContext ctx = WebContextFactory.get(); 
Integer areaId = FrameWorkUtils.getContext(ctx.getHttpServletRequest()).getAreaID();//获得区域编码

if(arrayList.size() != 0){
for(int i = 0; i < arrayList.size(); i++){
SolexaLib solexaLib = (SolexaLib)buildkuHbDAO.load(SolexaLib.class, arrayList.get(i));
Date startdate = new Date(Long.parseLong(condition.get("startDateText")));
solexaLib.setBeginDate(startdate);//开始时间
Date enddate = new Date(Long.parseLong(condition.get("endDateText")));
solexaLib.setEndDate(enddate);//结束时间
solexaLib.setLibVolume(condition.get("volume"));//体积
solexaLib.setEndRepairMachineNum(condition.get("endRepairMachineNum"));//末端修复仪器编号
solexaLib.setPlusAMachineNum(condition.get("plusAMachineNum"));//加A仪器编号
solexaLib.setAdapterConMachineNum(condition.get("adapterConMachineNum"));//adapter连接仪器编号
solexaLib.setPcrInstruments(condition.get("pcrInstruments"));//PCR仪器编号
solexaLib.setIsPassed(Integer.parseInt(condition.get("isEligibility")));//是否合格
solexaLib.setOperationPerson(condition.get("operator"));//操作人
solexaLib.setInitialConcent(condition.get("initialConcent"));//初始浓度
solexaLib.setDilution(condition.get("dilution"));//稀释倍数
solexaLib.setDilutionConcent(condition.get("dilutionConcent"));//稀释后浓度
solexaLib.setDilutionVolume(condition.get("dilutionVolume"));//稀释体积
solexaLib.setRemarks(condition.get("remark"));//备注
solexaLib.setReagentsNo(condition.get("reagentNo"));//试剂编号
solexaLib.setAreaId(areaId);


buildkuHbDAO.update(solexaLib);
}


}
}
condition传的是修改的信息,arrayList传的是要修改记录的ID。
为什么会出现这种情况,我无语了。请大家帮帮忙!! --------------------编程问答-------------------- 这可能是你修改的时候有一部分异常了。事务回滚掉了 --------------------编程问答-------------------- 你的是把所有选中的统一改为一样的吗? --------------------编程问答--------------------
引用 2 楼 hjgzj 的回复:
你的是把所有选中的统一改为一样的吗?

嗯 是的 --------------------编程问答-------------------- 1楼说的是 可能是异常停止或者回滚了 --------------------编程问答-------------------- LZ没有做事务么 --------------------编程问答--------------------
引用 4 楼 hjgzj 的回复:
1楼说的是 可能是异常停止或者回滚了


回滚的话那都会不成功阿
我昨天调试的时候  他是有出现100条update语句的。但就是有部分没有修改到。而且还不是经常,你如果再多操作几次,又是可以全部修改到的。
--------------------编程问答-------------------- 我这应该是swing把,我不太懂里面的方法。
是不是因为你的for循环体是一条一条更新的,所以回滚了只会对当前一条起作用?只供参考。坐等高手。
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,