Fórum Inserir com o hibernate no filho do filho #406427
11/08/2011
0
pra inserir checklist e intens checklist bacana, consigo numa boa:
CheckList:
@OneToMany(mappedBy = "checklist", fetch = FetchType.LAZY) @Cascade(value={CascadeType.ALL,CascadeType.DELETE_ORPHAN}) @OnDelete(action=OnDeleteAction.CASCADE) private List<ItemCheckList> item;
Itens:
@ManyToOne(fetch = FetchType.EAGER) @Label("lblCheckList") @JoinColumn(name = "ID_CHECKLIST", insertable=true, updatable=true) @Fetch(FetchMode.JOIN) @Cascade( value = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.SAVE_UPDATE } ) private CheckList checklist;agora tenho data vigencia, que toda vez que um item for desativado e reativado ele e gerado, isso mo meu master detail, ele clica em um icone que desativa, criando a data fim, e ja existe a data inicio, se eu reativar ele da new nas datas, joga a data corrente pra data inicial e deixa a data de vencimento em branco,e joga as duas datas que estava antes na DATAVIGENCIA, so que eu queria que isso ocorresse so qnd salvasse o cadastro todo e nao qnd reativo na detail,
alguém tem uma dica?
Wisley Souza
Curtir tópico
+ 0Posts
11/08/2011
Wisley Souza
Ninguemmmmmmmmmmmmmmmmmmmmmmmmmmm :(
Gostei + 0
11/08/2011
Davi Costa
Se sim,qual?
Posta sua página aqui.
att Davi
Gostei + 0
11/08/2011
Wisley Souza
uso jsf 1.2
Gostei + 0
11/08/2011
Davi Costa
att Davi
Gostei + 0
11/08/2011
Wisley Souza
utulizei um MAP no MBean, pra fazer o que eu queria...
mas vou por o código tbm:
[CODE]
/** * * @author Wisley Souza * @comentario Bean de manter checklists * */
@Controller("mBeanManterCheckList")@Scope("request")public class MBeanManterCheckList extends AbstractManterPaginacao {
private static final long serialVersionUID = 1L; private static Logger logger = LoggerFactory .getLogger(MBeanManterCheckList.class);
@Resource(name = "controllerCadastro") CadastroFacade checkListFacade;
private CheckList checkList; private List<ItemCheckList> listItensCheckList;
/** * @param Atributos * de ItemCheckList */ private Boolean error; private ItemCheckList itemCheckList;
private BasicFiltroCheckList filtro;
private String itemChecklistNome;
/** * combo de subProcessos */ private List<SelectItem> subProcessos; private EntityConverter<SubProcesso> converterSubProcesso; /** * novo checklList */ private boolean novoCheckList;
/** * Dados da data de vigencia */ private DataVigencia dataVigencia;
/** * @param edicaoItem * @coment variavel para verificar edicao de item */ private Boolean edicaoItem; /** * @comente List de datavigencias, pequeno teste */ private List<DataVigencia> datasVigentes; protected Map<Long, DataVigencia> mapaVigencias;
@PostConstruct void inicializar() { inicializarObjetos(); datasVigentes = Collections.emptyList(); novoCheckList = false; itemCheckList = new ItemCheckList(); listItensCheckList = Collections.emptyList(); // checkList.setItem(new ArrayList<ItemCheckList>()); setPaginaAtual(1); subProcessos = new ArrayList<SelectItem>(); // subProcessos. try { popularSubProcessos(); } catch (Exception e) { e.printStackTrace(); } }
/** * @comentario excluir item de checklis da tabela * @param index */
public void excluirItem(int index) { try { checkList.getItem().remove(index);
Messages.adicionaMensagemDeInfo(TemplateMessageHelper.getMessage( MensagensSistema.CHECKLIST, "msgRemoveItem"));
} catch (Exception e) { e.printStackTrace(); Messages.adicionaMensagemDeInfo(TemplateMessageHelper .getMessage("MSG_GEN_002")); } }
/** * @comentario Método que exclui os itens selecionados */
public void excluirSelecionados() { try { List<ItemCheckList> itList = new ArrayList<ItemCheckList>(); // itList = checkList.getItem(); for (ItemCheckList item : checkList.getItem()) { if (item.getSelect()) { // checkList.getItem().remove(item); itList.add(item); } } if (!itList.isEmpty()) { checkList.getItem().removeAll(itList);
} else { Messages.adicionaMensagemDeInfo(TemplateMessageHelper .getMessage(MensagensSistema.CHECKLIST, "msgNoSelectItens"));
}
} catch (ConstraintViolationException cve) { cve.printStackTrace(); Messages .adicionaMensagemDeErro("Ocorreu um erro de violacao no banco: " + cve.getMessage()); } catch (Exception e) { e.printStackTrace(); }
}
/** * @comentario método que inativa os itens selecionados na tabela de itens */ public void inativarSelecionados() { try { List<ItemCheckList> itList = new ArrayList<ItemCheckList>(); int i = 0; for (ItemCheckList item : checkList.getItem()) { if (item.getSelect()) { if (item.getAtivo()) { item.setAtivo(false); item.setVigencia_final(new Date()); i++; } itList.add(item); } }
if (itList.isEmpty()) Messages.adicionaMensagemDeInfo(TemplateMessageHelper .getMessage(MensagensSistema.CHECKLIST, "msgNoSelectItens")); else if (i == 0) Messages.adicionaMensagemDeInfo(TemplateMessageHelper .getMessage(MensagensSistema.CHECKLIST, "msgItensSelectsYesInativados")); else Messages.adicionaMensagemDeInfo(TemplateMessageHelper .getMessage(MensagensSistema.CHECKLIST, "msgItensSelectsInativados"));
} catch (ConstraintViolationException cve) { cve.printStackTrace(); Messages .adicionaMensagemDeErro("Ocorreu um erro de violacao no banco: " + cve.getMessage()); } catch (Exception e) { e.printStackTrace(); }
}
/** * @comentario Método que ativa itens selecionados na tabela */ public void reativarSelecionados() { try { Boolean checke = false; int i = 0; for (ItemCheckList item : checkList.getItem()) { if (item.getSelect()) { if (!item.getAtivo()) { item.setAtivo(true); item.setVigencia_final(null); item.setVigencia_inicial(new Date()); i++;
} checke = true; } }
if (!checke) Messages.adicionaMensagemDeInfo(TemplateMessageHelper .getMessage(MensagensSistema.CHECKLIST, "msgNoSelectItens")); else if (i == 0) Messages.adicionaMensagemDeInfo(TemplateMessageHelper .getMessage(MensagensSistema.CHECKLIST, "msgItensSelectsYesAtivados")); else Messages.adicionaMensagemDeInfo(TemplateMessageHelper .getMessage(MensagensSistema.CHECKLIST, "msgItensSelectsAtivados"));
} catch (ConstraintViolationException cve) { cve.printStackTrace(); Messages .adicionaMensagemDeErro("Ocorreu um erro de violacao no banco: " + cve.getMessage()); } catch (Exception e) { e.printStackTrace(); } }
/** * @author Wisley Souza * @comentario Método de Reativar Item de CheckList */
public void reativarItem(int index) { try { dataVigencia = new DataVigencia(); itemCheckList = checkList.getItem().get(index); itemCheckList.setAtivo(true); itemCheckList.setVigencia_final(null); itemCheckList.setVigencia_inicial(new Date()); checkList.getItem().set(index, itemCheckList); try { // carregando as Datas Vigentes dataVigencia.setVigenciaInical(itemCheckList.getVigencia_inicial()); dataVigencia.setVigenciaFinal(new Date()); dataVigencia.setItemCheckList(itemCheckList); if ( itemCheckList.getId() != null ) { if( mapaVigencias.get( itemCheckList.getId() ) != null ) { mapaVigencias.remove( itemCheckList.getId() ); } mapaVigencias.put(itemCheckList.getId(), dataVigencia); } // Boolean check = false;// for (DataVigencia datas : datasVigentes) {// if (datas != dataVigencia) {// check = true;// }// }// if (check) {// datasVigentes.add(dataVigencia);// } //checkListFacade.cadastrarDataVigente(dataVigencia); } catch (Exception sql) { sql.printStackTrace(); //sql.getSQLState(); Messages.adicionaMensagemDeErro("Ocorreu um erro de violação no banco" + sql.getMessage()); } Messages.adicionaMensagemDeInfo(TemplateMessageHelper.getMessage( MensagensSistema.CHECKLIST, "msgItemReativado"));
} catch (ConstraintViolationException cve) { System.out.println(cve.getMessage()); System.out.println(cve.getCause()); System.out.println("O nome da constrainte eh: " + cve.getConstraintName()); // String erros = new ArrayList<String>(); String erros = cve.getConstraintName(); Messages .adicionaMensagemDeErro("Ocorreu um erro de violação no banco" + erros); } catch (Exception ex) { ex.printStackTrace(); } }
public void teste() throws SQLIntegrityConstraintViolationException {
}
/** * @comentario Método de inativar um item..., Além de inserir as vigencias * das datas na tabela data de vigencia. * @param index * @author Wisley Souza */ public void inativarItem(int index) { try {
itemCheckList = checkList.getItem().get(index); itemCheckList.setAtivo(false); itemCheckList.setVigencia_final(new Date());
System.out.println(checkList.getItem().get(index)); checkList.getItem().set(index, itemCheckList); if( itemCheckList.getId() != null && mapaVigencias.get( itemCheckList.getId() ) != null ) { mapaVigencias.remove( itemCheckList.getId() ); } Messages.adicionaMensagemDeInfo(TemplateMessageHelper.getMessage( MensagensSistema.CHECKLIST, "msgItemInativado")); } catch (Exception e) { System.out.println(".................erro.............."); // SQLIntegrityConstraintViolationException sql = new // SQLIntegrityConstraintViolationException(); System.out.println(e.getCause().getCause().getMessage()); System.out.println(".................erro.............."); System.out.println(".................erro.............."); System.out.println(".................erro.............."); e.printStackTrace(); }
}
/** * @coment metodo de edicao de item * @param index */ public void editItemCheckList(int index) {
itemChecklistNome = null; itemCheckList = checkList.getItem().get(index); itemChecklistNome = itemCheckList.getItem(); edicaoItem = true; System.out.println(itemChecklistNome);
}
/** * @param Método * event que adciona novo item no checkList */ public void addItemCheckList(ActionEvent evento) { try { if (!edicaoItem) {
Integer i = 0; error = false; itemChecklistNome = itemChecklistNome.trim(); itemCheckList.setItem(itemChecklistNome); itemCheckList.setChecklist(checkList); itemCheckList.setVigencia_inicial(new Date()); itemCheckList.setAtivo(true); itemCheckList.setSelect(false); ResourceBundle resource = TemplateMessageHelper .getResourceBundle(MensagensSistema.CHECKLIST, JSFRequestBean.getLocale()); List<String> erros = ValidatorHelper.valida(itemCheckList, resource); if (erros.isEmpty()) { for (ItemCheckList item : checkList.getItem()) { if (item.getItem().equals(itemChecklistNome)) { i++; } } if (i <= 0) { checkList.getItem().add(itemCheckList); itemCheckList = new ItemCheckList(); itemChecklistNome = null;
} else { Messages.adicionaMensagemDeInfo(TemplateMessageHelper .getMessage(MensagensSistema.CHECKLIST, "msgInfoItemExistente")); } } else { Messages.adicionaMensagensDeErro(erros); error = true; // Messages.adicionaMensagemDeErro(mensagem); return;
} } else if (edicaoItem) { error = false; ResourceBundle resource = TemplateMessageHelper .getResourceBundle(MensagensSistema.CHECKLIST, JSFRequestBean.getLocale()); List<String> erros = ValidatorHelper.valida(itemCheckList, resource); if (erros.isEmpty()) { itemChecklistNome = itemChecklistNome.trim(); itemCheckList.setItem(itemChecklistNome); Messages.adicionaMensagemDeInfo(TemplateMessageHelper .getMessage(MensagensSistema.CHECKLIST, "msgEditItem")); } else { Messages.adicionaMensagensDeErro(erros); error = true; // Messages.adicionaMensagemDeErro(mensagem); return;
} }
} catch (Exception e) { e.printStackTrace(); e.getCause().getCause(); } setPaginaAtual(1); }
/** * @param Método * que verifica erros e inicializa um novo objeto. */
public void limpar(ActionEvent arg) { if (!error) { itemCheckList = new ItemCheckList(); itemChecklistNome = null; } error = false; }
/** * @comentario Novo CheckList * @return novo */
public String novoCheckList() { inicializarObjetos(); novoCheckList = true; edicao = false; return Constantes.NOVO;
}
/** * @comentario Método que popula os subProcessos do qual o CheckList pode * fazer parte */ public void popularSubProcessos() { subProcessos = new ArrayList<SelectItem>();
try { List<SubProcesso> processoAux = checkListFacade.listProcessos(); if (processoAux != null) { for (SubProcesso processo : processoAux) { subProcessos.add(new SelectItem(processo, TemplateMessageHelper.getMessage( MensagensSistema.SUBPROCESSO, processo .getNome()))); } converterSubProcesso = new EntityConverter<SubProcesso>( processoAux); } } catch (BusinessException e) { e.printStackTrace(); } }
@Override public int getTotalRegistros() {
return listItensCheckList.size(); }
/** * @comentario Método de edicao */ @Override public String editar() { Long idRegistro = Long.valueOf(JSFRequestBean.getParameter("id")); try { mapaVigencias = new HashMap<Long, DataVigencia>(); checkList = (CheckList) checkListFacade .getCheckListById(idRegistro);
/** * @param Captura * de de SubProcesso */ SubProcesso sub = checkListFacade.getSubProcessoById(checkList .getProcesso().getId()); checkList.setProcesso(sub);
itemCheckList = new ItemCheckList(); filtro = new BasicFiltroCheckList(); filtro.setCheckList(checkList);
listItensCheckList = checkListFacade .listaItensCheckListByFilter(filtro);
} catch (BusinessException e) { logger.error("erro: {}", e); e.printStackTrace(); Messages.adicionaMensagemDeErro(TemplateMessageHelper.getMessage( MensagensSistema.CHECKLIST, e)); } edicao = true; return Constantes.EDITAR; }
@Override public String salvar() { ResourceBundle resource = TemplateMessageHelper.getResourceBundle( MensagensSistema.CHECKLIST, JSFRequestBean.getLocale()); List<String> erros = ValidatorHelper.valida(checkList, resource);
if (erros.isEmpty()) { try { if (edicao) { List<DataVigencia> datas = new ArrayList<DataVigencia>(); datas.addAll(mapaVigencias.values()); checkListFacade.alterarCheckList(checkList, datas); } else { checkList.setAtivo(true); checkListFacade.cadastrarCheckList(checkList); } } catch (BusinessException e) { e.printStackTrace(); logger.error("erro: {}", e);
/** * verifica constraints */ Throwable lastCause = ExceptionFiltro.getLastException(e); if (lastCause.getMessage().contains("CHECK constraint")) { if (lastCause.getMessage().contains( "chk_checklist_proc_duplicado")) { Messages.adicionaMensagemDeErro(TemplateMessageHelper .getMessage(MensagensSistema.CHECKLIST, "msgCheckCheckList")); } return null;
} else {
Messages.adicionaMensagemDeErro(TemplateMessageHelper .getMessage(ExceptionFiltro.recursiveException(e))); e.printStackTrace(); return null; } } catch (DataIntegrityViolationException e) { Throwable lastCause = ExceptionFiltro.getLastException(e); if (lastCause.getMessage().contains("CHECK constraint")) { if (lastCause.getMessage().contains( "chk_checklist_proc_duplicado")) { Messages.adicionaMensagemDeErro(TemplateMessageHelper .getMessage(MensagensSistema.CHECKLIST, "msgCheckCheckList")); } return null;
} else {
Messages.adicionaMensagemDeErro(TemplateMessageHelper .getMessage(ExceptionFiltro.recursiveException(e))); e.printStackTrace(); return null; } } } else { Messages.adicionaMensagensDeErro(erros); return null; }
String message = TemplateMessageHelper.getMessage("MSG001"); Messages.adicionaMensagemDeInfo(message); refazerPesquisa(); return super.salvar(); }
/** * @comentario Métod de exclusao * @param Excluir */ @Override public String excluir() { try { checkListFacade.excluirCheckList(checkList); } catch (BusinessException e) { e.printStackTrace(); logger.error("erro: {}", e); Messages.adicionaMensagemDeErro(TemplateMessageHelper.getMessage( MensagensSistema.CHECKLIST, e)); return null;
} catch (DataIntegrityViolationException e) { e.printStackTrace(); Messages.adicionaMensagemDeErro(TemplateMessageHelper.getMessage("MSG_GEN_004")); return null; } Messages.adicionaMensagemDeInfo(TemplateMessageHelper .getMessage("MSG_EXCLUIR_SUCESSO")); return Constantes.EXCLUIR; }
@Override public void inicializarObjetos() { checkList = new CheckList(); checkList.setItem(new ArrayList<ItemCheckList>()); itemCheckList = new ItemCheckList(); filtro = new BasicFiltroCheckList(); error = false; edicaoItem = false; setPaginaAtual(1); }
@Override protected void refazerPesquisa() { MBeanPesquisarCheckList mBean = (MBeanPesquisarCheckList) JSFRequestBean .getManagedBean(Constantes.MBEAM_PESQUISAR_CHECK_LISTS);
mBean.refazerPesquisa();
}}
Gostei + 0
11/08/2011
Wisley Souza
public void reativarItem(int index) { try { dataVigencia = new DataVigencia(); itemCheckList = checkList.getItem().get(index); itemCheckList.setAtivo(true); itemCheckList.setVigencia_final(null); itemCheckList.setVigencia_inicial(new Date()); checkList.getItem().set(index, itemCheckList); try { // carregando as Datas Vigentes dataVigencia.setVigenciaInical(itemCheckList.getVigencia_inicial()); dataVigencia.setVigenciaFinal(new Date()); dataVigencia.setItemCheckList(itemCheckList);
//resolvi aki if ( itemCheckList.getId() != null ) { if( mapaVigencias.get( itemCheckList.getId() ) != null ) { mapaVigencias.remove( itemCheckList.getId() ); } mapaVigencias.put(itemCheckList.getId(), dataVigencia); }//termino de solucao // Boolean check = false;// for (DataVigencia datas : datasVigentes) {// if (datas != dataVigencia) {// check = true;// }// }// if (check) {// datasVigentes.add(dataVigencia);// } //checkListFacade.cadastrarDataVigente(dataVigencia); } catch (Exception sql) { sql.printStackTrace(); //sql.getSQLState(); Messages.adicionaMensagemDeErro("Ocorreu um erro de violação no banco" + sql.getMessage()); } Messages.adicionaMensagemDeInfo(TemplateMessageHelper.getMessage( MensagensSistema.CHECKLIST, "msgItemReativado"));
} catch (ConstraintViolationException cve) { System.out.println(cve.getMessage()); System.out.println(cve.getCause()); System.out.println("O nome da constrainte eh: " + cve.getConstraintName()); // String erros = new ArrayList<String>(); String erros = cve.getConstraintName(); Messages .adicionaMensagemDeErro("Ocorreu um erro de violação no banco" + erros); } catch (Exception ex) { ex.printStackTrace(); } }Gostei + 0
11/08/2011
Davi Costa
Muito boa a iniciativa de colocarmos nossas soluções.
abcs
att Davi
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)