Como manter um objeto persistente do Hibernate num ambiente WEB

3 respostas
D

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!

3 Respostas

ivela

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…

D

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

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…

Criado 25 de junho de 2009
Ultima resposta 25 de jun. de 2009
Respostas 3
Participantes 3