Como manter um objeto persistente do Hibernate num ambiente WEB  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
danielpk7
Thread.start()

Membro desde: 03/07/2007 20:44:15
Mensagens: 33
Offline

Boa tarde feras.
Seguinte, to desenvolvendo um sistema q não é todo em java. O front-end dele eh em ExtJS e não consigo passar objetos java pra tela a comunicação é feita atraves de JSON.
O objeto q estou persistindo tem relacionamentos com outras tabelas e eu sei q ao persistir um objeto pelo hibernate nesses relacionamentos eu teria q popular com pojos persistentes. No meu caso funciona assim: tenho uma tela de cadastro onde tem campos q são combos preenchidos com dados de outras tabelas mas q tem relacionamento com a principal, daí na hora de salvar eu populo um pojo só com o id desses capos e adiciono ao pojo principal q estou salvando. Se eu tivesse trabalhando só com java quando colocaria nesse bean principal uma referencia ao objeto persistente do hibernate q foi populado no combo mas como a tela eh nesse EXTJS não tem como manter a referencia desse objeto. Tem algum meio deu forçar o hibernate a colocar o valor do id desse objeto q to passando pra ele no campo de relacionamento ou eu tenho q fazer uma consulta no banco novemente antes de salvar pra cada campo q venha de outras tabelas só pra pegar o bean persistente q referencia aquela coluna no banco?

Não sei se fui claro, qualquer coisa me avisem...

Desde ja agradeço!
alevi
JavaChild
[Avatar]

Membro desde: 27/01/2007 13:58:04
Mensagens: 145
Offline

Olá!

Bem, pelo que entendi, você vai precisar fazer o parser do JSON para seus objetos para poder persistir com o hibernate em cascata.
De qualquer forma, o segredo está no ID dos objetos. Acho que se você utilizar um parser do JSON para seus pojos resolveria o problema.

Espero ter ajudado...

http://www.walkersystems.com.br

SCJP
danielpk7
Thread.start()

Membro desde: 03/07/2007 20:44:15
Mensagens: 33
Offline

velho eu uso o parser do JSON. vou ilustrar a situação pra ti entender:
Num cadastro de funcionario, ele busca um funcionario X na tabela Funcionario, o Hibernate retorna uma instancia do Bean Funcionario, se eu pegar essa instancia e modifica-la funciona corretamente pois estou trabalhando com um Bean em estado persistente, acontece q ao mandar pra tela tenho q usar o parcer pra transformar esse bean em JSON, daí eu modifico algum item no bean, qdo mando salvar minha alteração o parser do Json pega oq tah na tela e cria uma nova instancia da classe Funcionario e persiste, nesse caso ele funciona, indentifica pelo Id e da o update, mas qdo tem relacionamento digamos q minha tabela funcionario tem um campo Setor q vem de outra tabela, se eu simplesmente seto o campo Setor dentro de Funcionario ele grava como "null" no banco, no caso eu preciso fazer uma busca na tabela de Setor pelo Id q veio no bean Funcionario da tela e aí sim pegar essa instancia persistente e adicionar no meu Bean Funcionario antes de salvar. Só q queria q tivesse um jeito q não precisasse fazer consultas desnescessárias ao banco. Não tem outra forma de fazer isso?

Abraço!
Kenobi
GUJ Master
[Avatar]

Membro desde: 14/11/2003 13:06:37
Mensagens: 1678
Localização: Brasil
Offline

Dá uma olhada no OpenSession in View - http://springtips.blogspot.com/2007/07/open-session-in-view.html um filtro, para manter a session do hibernate.

Tive um problema parecido e resolvi dessa maneira...

This message was edited 1 time. Last update was at 25/06/2009 18:42:51


----------------------------------------------------------
SOA|EXPERT - http://www.soaexpert.com.br
SOA de um jeito simples e eficiente.
[WWW] [MSN] [ICQ]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team