Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/helper/DataHelperForPacking.java =================================================================== diff -u -r36182 -r36183 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/helper/DataHelperForPacking.java (.../DataHelperForPacking.java) (revision 36182) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/helper/DataHelperForPacking.java (.../DataHelperForPacking.java) (revision 36183) @@ -126,23 +126,17 @@ if(StringTools.isBlank(serialNumber)){ throw new RuntimeException("装配任务的序列号不能设置为空"); } + Set ids = new HashSet(); + for (PackingTask pt : packingTasks) { + ids.add(pt.getId()); + } StringBuffer sbf = new StringBuffer(); sbf.append("update "); sbf.append(PackingTask.class.getSimpleName()); sbf.append(" set serialNumber='"); sbf.append(serialNumber); - sbf.append("' where id=?;"); - jdbcTemplate.batchUpdate(sbf.toString(), new BatchPreparedStatementSetter() { - - @Override - public void setValues(PreparedStatement ps, int i) throws SQLException { - ps.setLong(1, packingTasks.get(i).getId()); - } - - @Override - public int getBatchSize() { - return packingTasks.size(); - } - }); + sbf.append("' where "); + sbf.append(SqlUtils.getNonStringFieldInLargeCollectionsPredicate("id", ids)); + jdbcTemplate.execute(sbf.toString()); } }