ThreadLocal problema Transaction com OneToMany[Resolvido]  XML
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Autor Mensagem
raphaelcmacedo
Thread.start()
[Avatar]
Membro desde: 14/04/2010 09:17:22
Mensagens: 40
Offline

Galera estou mudando o projeto aqui para Thread Local no hibernate. É um projeto utilizando Java e Flex. Para não entrar em maiores detalhes, toda vez que altero um objeto e o comito, busca novamente esse objeto no banco.

Tenho uma classe empenho que possui uma coleção de itens. Toda vez que incluo um novo item, quando volto à tela de empenho busco novamento o objeto empenho para que os dados do item recém incluido alimentem o Grid. Algumas vezes, não todas, na busca o objeto que acabei de incluir, alterar ou excluir não vem atualizado, quando saio da tela e volto (carrego novamente) ele vem correto acredito que seja alguem problema de controlo de transação na busca. Estou colocando abaixo o código de busca



Agradeço a qualquer ajuda

This message was edited 1 time. Last update was at 10/03/2011 13:07:34

victorwss
JWizard
[Avatar]

Membro desde: 18/12/2007 14:46:00
Mensagens: 2409
Localização: São Paulo - SP
Offline

Para que serve o parâmetro s se você usa getSession() dentro do método ou seta a sessão com o seu sapiturSF.getInstance()? Em lugar nenhum você usa o parâmetro s.
Porque você usa em um ponto getSession().getTransaction() e em outro usa getTx()? Isso não pode te dar um resultado inconsistente?

E eu otimizaria este código evitando repetições (e talvez você acabe matando alguns bugs ao fazer isso).
Por exemplo, isto daqui:Pode ser simplificado nisso:E isto daqui:Pode ser simplificado nisso:

Victor Williams Stafusa da Silva

Bacharel em Ciência da Computação - UFMT // Especialista em Desenvolvimento Java - CEFET/MT // Doutorando em Ciência da Computação - IME-USP
SCJP 6.0 - 19/12/2007 - PASS - 88% // SCWCD 5 - 17/05/2008 - PASS - 79% // SCJA - 09/09/2008 - PASS - 96% // SCSNI - 30/06/2009 - PASS - 68% // SCBCD 5 - 31/05/2010 - PASS - 95%
Próximos: SCJD (encalhado com o projeto), SCEA parte I (estudando). Algum dia desses: SCMAD, OCA, SCEA e SCDJWS.

Computação: uma ciência holística e esotérica!
E então veio Deus a terra e disse aos homens: Não dividireis por zero.
XML is a giant step in no direction at all. (Erik Naggum)
Arquitetura de sistemas: Eu prefiro ser essa metamorfose ambulante do que ter aquela velha opinião formada sobre tudo.
Diga não as drogas: Não use java.util.Vector.
Cuidado: Este usuário pode ter temperamento agressivo.

Always code as if the person who will maintain your code is a maniac serial killer that knows where you live.
I am the maniac serial killer that knows where you live who will maintain your code.


É impossível falar de CMMI (Capability Maturity Model Integration) sem saber o que é CIMM (Capability Im-Maturity Model).


Se você escreve "concerteza", "concerteza" você andou matando aulas de português.
[MSN]
raphaelcmacedo
Thread.start()
[Avatar]
Membro desde: 14/04/2010 09:17:22
Mensagens: 40
Offline

Ah sim claro, esqueci de comentar que realmente o parametro Session s não está sendo usado.
Esse parametro era usado na arquitetura antiga, que estava bem errada com dois métodos uma passando a Session e outro não.
Até depois resolvi usar, para não ficar tão diferente de como estava antes, a diferença é que se o cara já passar a sessão, eu não limpo não comito nem nada. Como estava tentando fazer o código funcionar não me preocupei mto com a organização. Mas, agora pelo menos com essas modificações "parece" estar funcionando:


Agora é testar e ver se funciona mesmo, qualquer coisa posto aqui. Obrigado

This message was edited 1 time. Last update was at 10/03/2011 08:20:39

raphaelcmacedo
Thread.start()
[Avatar]
Membro desde: 14/04/2010 09:17:22
Mensagens: 40
Offline

Galera, tá resolvido. Parece que o flush que o commit dá não estava funcionando em todos os casos, foi só dar um flush nas sessões dirty que funcionou. Vou colocar aqui a solução, caso venha ajudar alguem:

 
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team