Fórum Aplicação atualiza informações apenas após reiniciar o servidor GlassFish #500971
12/11/2014
0
Estou com um problema em minha aplicação, onde algumas informações só são atualizadas após reiniciar o servidor GlassFish.
Segue exemplo:
Possuo algumas tabelas em meu banco de dados, são elas
Tarefa, Projeto e Grupo. Junto a essas tabelas foram criadas outras duas tabelas para realizar o relacionamento ManyToMany entre as entidades, são elas: ProjetoTarefa e GrupoProjeto.
A única diferença entre as tabelas de relacionamento, é que a tabela ProjetoTarefa tem um campo próprio, e devido a este campo, foi necessário realizar o mapeamento.
Ao tentarmos vincular Grupo com Projeto pela aplicação, tudo ocorre normalmente, as páginas atualizam as informações referentes. Porém ao tentarmos vincular Projeto e Tarefa, (assim criando uma nova entidade Projetotarefa), há necessidade de reiniciar o servidor GlassFish para que as páginas apresentem as informações referentes.
Verifiquei os escopos e me parecem estar OK.
Alguém ja passou por isso? Toda ajuda é bem vinda, Obrigado!!
Bruno Santana
Curtir tópico
+ 0Post mais votado
13/11/2014
no meio desse processo de remoção tambem mandei remover da lista desse projeto assim o registro foi apagado... Acho que estava entendendo de forma errada, eu pensei que por ProjetoTarefa ser uma entidade em si ao mandar remove-la tudo iria acontecer perfeitamente... mas parece que também é necessário remover de Projeto (que possui uma lista de ProjetoTarefa) esses itens :S
parece que resolveu...
Outra pergunta, estou realizando esse trabalho como meu TCC.. e voce tem sido uma grande ajuda respondendo aqui minahs dúvidas no fórum... Você permite que eu cite seu nome no meu trabalho? Valeu Ronaldo!
Correto, essa é a ideia, trabalhar com sua entidade "composta" ProjetoTarefa como itens das outras, pensando assim você consegue remover elas. Respondendo sua pergunta sobre o TCC, pode sim citar, não há nenhum problema, fico grato pelo reconhecimento.
Ronaldo Lanhellas
Gostei + 1
Mais Posts
12/11/2014
Ronaldo Lanhellas
Gostei + 0
12/11/2014
Bruno Santana
Alguma luz?
Gostei + 0
12/11/2014
Ronaldo Lanhellas
Gostei + 0
12/11/2014
Bruno Santana
Gostei + 0
12/11/2014
Ronaldo Lanhellas
Gostei + 0
12/11/2014
Bruno Santana
Gostei + 0
13/11/2014
Ronaldo Lanhellas
Quando for salvar, utilizar o "em.merge()" em vez do persist, faz este teste.
Gostei + 0
13/11/2014
Bruno Santana
Sobre as atualizações que não apareciam parece que tudo foi resolvido mas aí que me aparece outro problema...
Ao criar um vinculo entra Projeto e Tarefa (assim criando a entidade ProjetoTarefa por possuir um campo próprio bla bla bla...) está tudo ok, mas ao desvincular a mesma acontece o seguinte...
ao realizar uma "desvinculação" fiz a seguinte lógica seto como NULL o campo Projeto e como NULL o campo Tarefa de ProjetoTarefa e após isso uso um "servico.removeProjetoTarefa"... mas por algum motivo MALÍGNO as linhas do banco de dados não são removidas, a desvinculação acontece, para aplicação parece q tudo ocorre normal pois ele realmente seta como NULL os campos assim "desvinculando" projeto de tarefa... mas a tabela projetoTarefa no banco fica com "sujeira"... as linhas permanecem lá...
Tem alguma pista? todas as outras entidades do sistema são removidas normalmente, apenas nesse caso isso acontece... e todo "remove" passa pelo mesmo lugar, que é meu repositórioBásico(método removeEntidade)...
Obrigado!!!
Gostei + 0
13/11/2014
Ronaldo Lanhellas
Gostei + 0
13/11/2014
Bruno Santana
Acabei retirando.. agora estão sem nenhum cascade mas o erro persiste... será que é algo relacionado a isso?
Gostei + 0
13/11/2014
Ronaldo Lanhellas
Acabei retirando.. agora estão sem nenhum cascade mas o erro persiste... será que é algo relacionado a isso?
Em algum local tem que ter o cascade para que eles sejam removidos, caso contrário você terá que fazer isso manualmente, ou seja, remover item a item.
Gostei + 0
13/11/2014
Bruno Santana
if(tarefasSelecionadasExcluir != null){
for(ProjetoTarefa trf : tarefasSelecionadasExcluir){
trf.setPtrTarefa(null);
trf.setPtrProjeto(null);
servicoTarefa.removeProjetoTarefa(trf);
}que pelo que eu planejei... para cada item selecionado em uma table que mostra as relações do projeto com as tarefas ele irá setar os campos PtrTarefa(que representa a tarefa) e PtrProjeto(que representa o projeto) como nulo assim fazendo a desvinculação, e logo abaixo chamo meu servico para realmente remover do banco essa relação...
Em teoria com isso a remoção deveria ocorrer por completo não? ou estou enganado
Gostei + 0
13/11/2014
Ronaldo Lanhellas
Gostei + 0
13/11/2014
Bruno Santana
No meu repositorioBasico onde estão os métodos "padrao" o remove esta assim
protected void removeEntidade(Object entity) {
Object objAtualizado = getEntityManager().merge(entity);
getEntityManager().remove(objAtualizado);
}Para todo o resto da aplicação está funcionando normalmente, a remoção ocorre sem problemas... nao consigo enxergar o que pode estar acontecendo
Gostei + 0
13/11/2014
Bruno Santana
no meio desse processo de remoção tambem mandei remover da lista desse projeto assim o registro foi apagado... Acho que estava entendendo de forma errada, eu pensei que por ProjetoTarefa ser uma entidade em si ao mandar remove-la tudo iria acontecer perfeitamente... mas parece que também é necessário remover de Projeto (que possui uma lista de ProjetoTarefa) esses itens :S
parece que resolveu...
Outra pergunta, estou realizando esse trabalho como meu TCC.. e voce tem sido uma grande ajuda respondendo aqui minahs dúvidas no fórum... Você permite que eu cite seu nome no meu trabalho? Valeu Ronaldo!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)