@Override public BaseEntity create(final BaseEntity model) throws ServiceException, LogicException { CatalogoServicoDTO catalogoServicoDto = (CatalogoServicoDTO) model; final CatalogoServicoDao catalogoServicodao = this.getDao(); final ServContratoCatalogoServDao servContratoCatalogoServDao = new ServContratoCatalogoServDao(); final InfoCatalogoServicoDao infoCatalogoServicoDao = new InfoCatalogoServicoDao(); final TransactionControler tc = new TransactionControlerImpl(catalogoServicodao.getAliasDB()); try { this.validaCreate(model); catalogoServicodao.setTransactionControler(tc); infoCatalogoServicoDao.setTransactionControler(tc); servContratoCatalogoServDao.setTransactionControler(tc); tc.start(); catalogoServicoDto = (CatalogoServicoDTO) catalogoServicodao.create(model); if (catalogoServicoDto.getColServicoContrato() != null && !catalogoServicoDto.getColServicoContrato().isEmpty()) { ServContratoCatalogoServDTO item = null; // varre a lista de serviços for (int i = 0; i < catalogoServicoDto.getColServicoContrato().size(); i++) { item = catalogoServicoDto.getColServicoContrato().get(i); item.setIdCatalogoServico(catalogoServicoDto.getIdCatalogoServico()); // grava cada item da lista servContratoCatalogoServDao.create(item); } } if (catalogoServicoDto.getColInfoCatalogoServico() != null && !catalogoServicoDto.getColInfoCatalogoServico().isEmpty()) { InfoCatalogoServicoDTO item = null; // varre a lista de serviços for (int i = 0; i < catalogoServicoDto.getColInfoCatalogoServico().size(); i++) { item = catalogoServicoDto.getColInfoCatalogoServico().get(i); if (catalogoServicoDto.getIdCatalogoServico() != null) { item.setIdCatalogoServico(catalogoServicoDto.getIdCatalogoServico()); } if (catalogoServicoDto.getNomeInfoCatalogoServico() != null) { item.setNomeInfoCatalogoServico(catalogoServicoDto.getNomeInfoCatalogoServico()); } if (catalogoServicoDto.getDescInfoCatalogoServico() != null) { item.setDescInfoCatalogoServico(catalogoServicoDto.getDescInfoCatalogoServico()); } // grava cada item da lista if (item.getIdInfoCatalogoServico() == null) { infoCatalogoServicoDao.create(item); } else { infoCatalogoServicoDao.update(item); } } } tc.commit(); } catch (final Exception e) { e.printStackTrace(); this.rollbackTransaction(tc, e); } finally { try { tc.close(); } catch (final Exception e) { e.printStackTrace(); } } return catalogoServicoDto; }