List<ConstructionExample> ceList = new ArrayList<ConstructionExample>();
Map<Integer, ConstructionExample> ceMap =
new HashMap<Integer, ConstructionExample>();
for (Object o : cerows) {
Object[] cols = (Object[]) o;
ConstructionExample ce = new ConstructionExample();
ce.setExampleId((Integer) cols[0]);
ce.setExampleRelativeNumber((Integer) cols[1]);
ce.setExampleName((String) cols[2]);
ce.setObjectId((Integer) cols[3]);
ce.setObjectConstructionId((Integer) cols[4]);
ceList.add(ce);
ceMap.put(ce.getExampleId(), ce);
}
List<?> res = getSession().createQuery(
"select "+
" cd.constructionDefectId, "+
" cd.comment, "+
" dt.defectTypeId, "+
" dt.defectTypeName,"+
" dv.varityId, "+
" dv.varityName,"+
" dz.defectZoneId, "+
" dz.defectZoneName,"+
" cd.exampleId"+
" from ConstructionDefect as cd, DefectType as dt, " +
" DefectZone as dz, DefectVarity dv"+
" where cd.defectType.defectTypeId = dt.defectTypeId " +
" and cd.defectZone.defectZoneId = dz.defectZoneId " +
" and cd.defectVarity.varityId = dv.varityId")
.list();
for (Object r : res){
Object[] rescolumns = (Object[]) r;
ConstructionDefect cd = new ConstructionDefect(
(Integer) rescolumns[0], (String) rescolumns[1]);
DefectType dt = new DefectType(
(Integer) rescolumns[2], (String) rescolumns[3]);
DefectVarity dv = new DefectVarity(
(Integer) rescolumns[4], (String) rescolumns[5]);
DefectZone dz = new DefectZone(
(Integer) rescolumns[6], (String) rescolumns[7]);
cd.setDefectType(dt);
cd.setDefectVarity(dv);
cd.setDefectZone(dz);
ConstructionExample ce =
ceMap.get((Integer) rescolumns[8]);
if (ce != null) {
ce.getExampleDefects().add(cd);
}
}
return ceList;
}