| Autor |
Mensagem |
|
|
bom, a ideia de DAO é fazer o acesso aos dados, ou seja, execução dos sql's...
O ideal seria vc criar um BusinessDelegate e um BusinessObject.
O BusinessObject contendo as regras de negocio e acessando o DAO.
O BusinessDelegate sendo a ligação entre o Controller e o BusinessObject.
Ex:
|
 |
|
|
valeu cara...
agora entendi o threadlocal...
ele garante uma session para cada requisição, colocando a session na thread para a requisicao criada pelo container.
ok, vou modificar no sistema. qualquer coisa, eu posto novamente
|
 |
|
|
o meu codigo está correto? está dentro do padrao MVC? e do Struts?
usando threadlocal pode ocorrer erros nas transações. pense na seguinte situação:
user1 e user2
user1 acaba de entrar no sistema
user2 em seguida entra no sistema
user1 abre uma transação e faz um update a uma consulta, neste mesmo tempo o user2 faz um update (na mesma session e transaction), porém dá um erro no update e um rollback é chamado. quando o user1, que nada teria a ver com user2, for comitar no db, as atualizações dele não serão efetivadas por ter ocorrido um rollback em sua transaction.
estou partindo do pre suposto que as operações de user1 irão demorar um bom tempo e a de user2 são instantaneas, ou seja, a session e a transaçao serão a mesma.
será que é isso mesmo? se não for ajudem-me.
|
 |
|
|
ok, mas veja bem.
a session e a transação será a mesma!?
ou seja, imagine que eu e você faça uma requisição ao mesmo tempo, será aberto uma sessão e transação compartilhada para nós dois, correto?
alem disso, o meu codigo está correto? está dentro do padrao MVC? e do Struts?
|
 |
|
|
me ajuda pelo amor de deus!!!
manda um exemplo simples!
meu sistema faz o seguinte:
inclusão, edição, remoção, visualização e pesquisa de clientes
abaixo está todo o codigo dele. digam-me o que está bom e o que esta ruim, como adicionar threadlocal nele?
|
 |
|
|
ele pode ate reaproveitar action mas formbean não, porque senão daria erros... pelo menos na teoria...
na verdade estava usando ThreadLocal mas nao funcionou legal por causa de session, objetos lazy e transactions...
hibernate é muito bom mas ate hoje nao consegui rodar 100% usando struts.
o pessoal fala que roda, mandam consultar a documentação do struts e hibernate mas nunca resolvo o problema.
não há exemplos, dicas e/ou tutoriais de struts e hibernate juntos, pelo menos eu ate hoje nao achei.
tenho uma aplicação em swing e nunca tive problemas, roda 100% mas quando a coisa é web, em especial struts, o trosso da zebra.
alguem tem um exemplo de struts e hibernate rodando juntos? ou será que tem outra solução melhor?
|
 |
|
|
|
alguem pode me ajudar?
|
 |
|
|
ola pessoal...
tenho uma webapp em struts.
uso hibernate para persistencia.
criei um filter que controla sessions e transactions com o banco de dados.
tudo funciona perfeitamente até um ponto.
se voces repararem, a cada request é criado uma session e uma transação com o banco de dados.
aconteceu por duas vezes um fato q eu nao entendi.
dois usuarios estavam trabalhando normalmente no sistema, e, em um instante, eles fizeram operações identicas, ou seja, ambos entraram no cadastro de cliente e cadastraram dois clientes diferentes mas quando foram salvar os dados no banco, foi salvo dois registros identicos, iguais porem com id diferente.
é como se a session estivesse fora de sincronismo, mas teoricamente so daria erro se fosse a mesma session, o que não é.
para cada request há uma nova session, que ao final do request é fechado.
será que alguem pode me ajudar?
|
 |
|
|
sim, está correto...
chain.doFilter é o antes e o depois do request (action e jsp).
|
 |
|
|
ok, mas ja tem 2 dias e ninguem falou nada.
em outros topicos percebe-se que as respostas são bem rápidas.
deixa pra lá...
em relação ao pool, não usei...
sei poco sobre pool...
se puder, me explique como é, como funciona e como implementar?
vlw!
|
 |
|
|
alguem usa hibernate neste mundo???
realmente o problema é a conecção que está fechando por timeout.
como faço para ver se a conecção está fechada?
e como reabrir a conecção???
|
 |
|
|
acho que sei o que está acontecendo.
fiz algumas alterações...
usei filtros http://www.guj.com.br/java.tutorial.artigo.11.1.guj para servlets e adicionei um closeSession() para que as sessoes abertas fossem fechadas.
mesmo assim dá um erro apos muito tempo sem atividade.
o problema parece que é na conecção...
após um tempo, a conection com o bd é fechada, ai quando vou iniciar uma session dá este erro:
|
 |
|
|
|
ninguem sabe hibernate aqui não???
|
 |
|
|
pessoal, to com um problema que não estou conseguindo resolver.
tenho uma appweb com hibernate.
há uma action generica com todos os controles genericos: controle de acesso, beans, transações, exceptions...
sempre quando a action generica é executada, a ultima session do hibernate é fechada. Alem disso abro uma transação (e session) e a fecho ao final da execução da action. Porem existe objetos (lazy do hibernate) que são carregados durante a execução do JSP, o que não me permite fechar a session ao final da action e sim no inicio da proxima action (ou a ultima session).
está correto o que eu fiz?
aparentemente está tudo ok.
starto o servidor e uso normalmente, sem problemas...
o que está acontecendo é que após um bom periodo sem uso, acontece um monte de erros no hibernate. parece que é um timeout. Talvez seja na ultima session que foi fechada ou então na SessionFactory que foi perdida.
um dos erros:
org.hibernate.exception.GenericJDBCException: could not execute query
|
 |
|
|
voce não pode colocar uma taglib dentro de uma propriedade de outra taglib. não desta forma
tente colocar o valor usando jsp:
|
 |
|
|
|
|