ProcessTemplateDAO { public List<com.wipro.ats.bdre.md.beans.table.ProcessTemplate> selectMissingSubTList(Integer processId, Integer processTemplateId) { Session session = sessionFactory.openSession(); List<com.wipro.ats.bdre.md.beans.table.ProcessTemplate> processTemplateList = new ArrayList<com.wipro.ats.bdre.md.beans.table.ProcessTemplate>(); try { session.beginTransaction(); Criteria fetchProcessTemplateId = session.createCriteria(Process.class).add(Restrictions.eq(DELETEFLAG, false)).add(Restrictions.eq("process.processId", processId)).setProjection(Projections.property(PARENTPROCESSTEMPLATEID)); List<Integer> processTemplateIdList = fetchProcessTemplateId.list(); LOGGER.info("processTemplateId List size:" + processTemplateIdList); Criteria fetchProcessTemplate = session.createCriteria(ProcessTemplate.class).add(Restrictions.not(Restrictions.in(PROCESSTEMPLATEID, processTemplateIdList))).add(Restrictions.eq(PARENTPROCESSTEMPLATEID, processTemplateId)); List<ProcessTemplate> jpaProcessTemplateList = fetchProcessTemplate.list(); LOGGER.info("jpaprocessTemplate List size:" + jpaProcessTemplateList); for (ProcessTemplate jpaProcessTemplate : jpaProcessTemplateList) { com.wipro.ats.bdre.md.beans.table.ProcessTemplate processTemplate = new com.wipro.ats.bdre.md.beans.table.ProcessTemplate(); processTemplate.setProcessTemplateId(jpaProcessTemplate.getProcessTemplateId()); processTemplate.setDescription(jpaProcessTemplate.getDescription()); processTemplate.setProcessName(jpaProcessTemplate.getProcessName()); processTemplate.setBusDomainId(jpaProcessTemplate.getBusDomain().getBusDomainId()); processTemplate.setProcessTypeId(jpaProcessTemplate.getProcessType().getProcessTypeId()); processTemplate.setParentProcessId(jpaProcessTemplate.getProcessTemplate().getProcessTemplateId()); processTemplate.setCanRecover(jpaProcessTemplate.getCanRecover()); processTemplate.setBatchPattern(jpaProcessTemplate.getBatchCutPattern()); processTemplate.setNextProcessIds(jpaProcessTemplate.getNextProcessTemplateId()); processTemplate.setWorkflowId(jpaProcessTemplate.getWorkflowType().getWorkflowId()); processTemplate.setOwnerRoleId(jpaProcessTemplate.getUserRoles().getUserRoleId()); processTemplate.setPermissionTypeByUserAccessId(jpaProcessTemplate.getPermissionTypeByUserAccessId().getPermissionTypeId()); processTemplate.setPermissionTypeByGroupAccessId(jpaProcessTemplate.getPermissionTypeByUserAccessId().getPermissionTypeId()); processTemplate.setPermissionTypeByOthersAccessId(jpaProcessTemplate.getPermissionTypeByOthersAccessId().getPermissionTypeId()); processTemplate.setCounter(jpaProcessTemplateList.size()); processTemplateList.add(processTemplate); LOGGER.info("processTemplate is :" + processTemplate); session.getTransaction().commit(); } } catch (MetadataException e) { session.getTransaction().rollback(); LOGGER.error(e); } finally { session.close(); } return processTemplateList; }  List<com.wipro.ats.bdre.md.beans.table.ProcessTemplate> list(Integer pageNum, Integer numResults, Integer processId); Integer totalRecordCount(); ProcessTemplate get(Integer id); Integer insert(ProcessTemplate processTemplate); void update(ProcessTemplate processTemplate); void delete(Integer id); List<com.wipro.ats.bdre.md.beans.table.ProcessTemplate> selectPTList(int processTemplateId); List<com.wipro.ats.bdre.md.beans.table.Process> selectPListForTemplate(int processTemplateId); List<com.wipro.ats.bdre.md.beans.table.Process> selectPPListForTemplateId(int processTemplateId); List<com.wipro.ats.bdre.md.beans.table.ProcessTemplate> listSubProcessTemplates(int processTemplateId); com.wipro.ats.bdre.md.beans.table.Process selectNextForPid(Integer processId, Integer parentProcessId); List<com.wipro.ats.bdre.md.beans.table.ProcessTemplate> selectMissingSubPList(Integer processId, Integer processTemplateId); List<com.wipro.ats.bdre.md.beans.table.ProcessTemplate> selectMissingSubTList(Integer processId, Integer processTemplateId); List<com.wipro.ats.bdre.md.beans.table.Properties> selectMissingPropListForP(Integer processId, Integer processTemplateId); List<com.wipro.ats.bdre.md.beans.table.PropertiesTemplate> selectMissingPropListForT(Integer processId, Integer parentProcessId, Integer processTemplateId);  }
@Test @Ignore public void testSelectMissingSubTList() throws Exception { List<com.wipro.ats.bdre.md.beans.table.ProcessTemplate> returnedList = processTemplateDAO.selectMissingSubTList(10802, null); LOGGER.info("size of returned list is " + returnedList.size()); }