Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java =================================================================== diff -u -r29886 -r29913 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 29886) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 29913) @@ -37,6 +37,7 @@ import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; +import org.hibernate.LazyInitializationException; import org.hibernate.Query; import org.hibernate.Session; import org.springframework.beans.BeanUtils; @@ -3243,13 +3244,29 @@ td.setTousseGroupName(ancestorTD.getTousseGroupName()); td.setPackageSize(ancestorTD.getPackageSize()); //大小 List diposableGoodsItems = new ArrayList(); - for (DiposableGoodsInstance item : ancestorTD - .getDiposableGoodsItems()) { - DiposableGoodsInstance newItem = new DiposableGoodsInstance(); - newItem.setDiposableGoods(item.getDiposableGoods()); - newItem.setAmount(item.getAmount()); - newItem.setTousse(td); - diposableGoodsItems.add(newItem); + List diposableGoodsList = null; + try { + for (DiposableGoodsInstance item : td.getDiposableGoodsItems()) { + DiposableGoodsInstance newItem = new DiposableGoodsInstance(); + newItem.setDiposableGoods(item.getDiposableGoods()); + newItem.setAmount(item.getAmount()); + newItem.setTousse(td); + diposableGoodsItems.add(newItem); + } + } catch (LazyInitializationException e) {//报懒加载的话 就查数据库 + diposableGoodsList = objectDao.findByHql(String.format(" from %s po where po.tousse.id = %s ", + DiposableGoodsInstance.class.getSimpleName(),ancestorTD.getId())); + if(!(diposableGoodsList == null || diposableGoodsList.isEmpty())){ + for (DiposableGoodsInstance item : diposableGoodsList) { + DiposableGoodsInstance newItem = new DiposableGoodsInstance(); + newItem.setDiposableGoods(item.getDiposableGoods()); + newItem.setAmount(item.getAmount()); + newItem.setTousse(td); + diposableGoodsItems.add(newItem); + } + } + } catch (Exception e){ + e.printStackTrace(); } td.setDiposableGoodsItems(diposableGoodsItems); td.setRiskLevel(ancestorTD.getRiskLevel());