Galera, preciso que me tirem três duvidas basicas. Por favor.
1 - Acabei de implementar esse filtro no meu projeto.
https://www.hibernate.org/43.html
Esta funcionando muito bem, porem reparei que não codigo não tem close() esta certo isso? É assim mesmo?
2 - Após começar a usar começei a reparar que tinha horas que o MySQL ficava fora do ar. E não entrava. Tem alguma relação ou só coincidencia??
3 - Após eu deletar uma linha gostaria de mostrar p os usuarios os dados dela. Porem ele só exibe o Id. Tem como fazer isso sem precisar criar um objeto novo??
Obrigado pela ajuda
Cara, pelo que sei esse tipo de filtro não garante que a session seja fechada, vc ainda tem que ter o cuidado de fechar na hora certa. Ele só garante que todo mundo que precise TERÁ uma session disponivel.
Caso vc não esteja fechando a session em nenhum lugar explicitamente com certeza isso deverá lhe trazer problemas, não da pra dizer se esse que vc relatou tem a ver com isso, mas a primeira providencia é identificar aonde e quando as sessions devem ser fechadas.
Quanto a ele só exibir o Id, posta o codigo ai que agente ve.
flw
Egamorim,
Valew, entendi. Então talvez tenha a ve, porque se não fecha a session ela obviamente fica aberta e tenho verificados que após um tempo ficam mtas threads abertas do MySQL.
Eu posso depois do commit fechar a session? Ou isso acarretara problemas e o filter não adiantaria nada??
sf.getCurrentSession().beginTransaction();
chain.doFilter(request, response);
sf.getCurrentSession().getTransaction().commit();
sf.close()
Bom o codigo é esse:
user = dao.getUsuariosDAO().read(user.getId());
Usuarios u = new Usuarios();
u.setArea(user.getArea());
u.setBaia(user.getBaia());
u.setId(user.getId());
u.setNome(user.getNome());
u.setRamal(user.getRamal());
request.setAttribute("user", u);
dao.getUsuariosDAO().delete(user);
String acao = "excluido";
request.setAttribute("acao", acao);
return mapping.findForward("okuser");
Se eu faço assim, da certo, porque eu crio um novo objeto, mas se eu não faço isso ele só exibe o Id.
Aproveitando…
Qual a diferença de update, saveOrUpdate e merge??
Valew
Cara, o lance de fechar e abrir session na hora certa não é tão simples quanto parece, ainda mais se tratando de fazer isso na mão, mas pra começar da pra seguir a seguinte regra: Quem abriu fecha depois de usar. ou seja, vc abre a session, faz o que vc quiser fazer com ela, depois fecha logo em seguida, o filter não serve para garantir que a session será fechada, serve pra garantir que vc não tentara salvar alguma coisa por exemplo sem ter uma session, isso já é muito útil. Fazendo na mão, não conheço nada que assegure que a session será fechada com certeza seme que vc tenha que lembrar de fazer isso.
quanto a save e saveOrUpdate, a diferença é que save sempre tenta salvar um novo, saveOrUpdate verifica antes se esse registro ja existe, caso ja exista ele atualiza os dados, se não existir ele salva um novo. “Qual é melhor?” , a resposta pra esta pergunta como na maioria dos casos é Depende. porque cada caso é um caso.
Pra entender o merge vc terá que entender antes a respeito de como o JPA trabalha com gerenciamento de estados. Vou procurar alguma coisa aqui se achar te passo.
flw
Esta certo,
Quanto ao delete não jeito mesmo neh? Preciso criar um objeto novo, porque se eu exclui ela dexa de ser persistida e não existe mais, o unico jeito é eu armazanar em outro objeto certo??
[quote=vinicius_roc]Esta certo,
Quanto ao delete não jeito mesmo neh? Preciso criar um objeto novo, porque se eu exclui ela dexa de ser persistida e não existe mais, o unico jeito é eu armazanar em outro objeto certo??[/quote]
cara, desculpa mas eu não entendi o que vc quis dizer. Mas não esqueça de uma coisa, hibernate é uma ferramenta ORM e como tal, faz operações com Objetos no banco de dados (na pratica é mais ou menos isso rsrr). então pra fazer qualquer coisa vc terá que ter um Novo objeto.
mas tente ser mais claro quanto a sua duvida.
Quanto ao merge entendi. Muito obrigado. O update esta me servindo muito bem por enquanto. hehe
Ja a minha duvida acredito que não vou ter escapatória.
O que acontece é que quando o usuario clica para excluir um usuario, por exemplo, eu uso o mesmo objeto que passo como parametro para o delete, uso para mostrar p o usuario. E isto não da certo, porque, acredito que a linha não exista mais. Então passei a criar um novo objeto para exibir os dados para o usuario. Esta certo isso??
[quote=vinicius_roc]Quanto ao merge entendi. Muito obrigado. O update esta me servindo muito bem por enquanto. hehe
Ja a minha duvida acredito que não vou ter escapatória.
O que acontece é que quando o usuario clica para excluir um usuario, por exemplo, eu uso o mesmo objeto que passo como parametro para o delete, uso para mostrar p o usuario. E isto não da certo, porque, acredito que a linha não exista mais. Então passei a criar um novo objeto para exibir os dados para o usuario. Esta certo isso??[/quote]
então, mas vc quer mostrar o conteudo do registro pro usuário depois de excluido ? se sim realmente vc terá que criar de novo, mas isso não é muito comum neh rsrs
Sim, é a minha inteção.
Exibir os dados na tela de confirmação.
Muito obrigado pela ajuda.
Valew