Duvida com EJB ( stateless ) persistindo automaticamente

4 respostas
sudeval

estou com um pequeno probleminha, mas creio que seja algo simples para muitos…

tenho uma classe :

caso eu faça em gerarRelatorioEstatistico algo do tipo

estava tentando acumular valores dentro de objetos Consolidacao, fazendo consolidacao.setTotal(valor), so que percebi que ele faz isso direto no banco, ou seja, toda vez que eu consigo obter um objeto e altero algo nele ( com set e talz ) ele aplica isso no banco, como eu devo fazer para trabalhar com objetos ( Entity ) vindo do banco sem que eu os altere ?

creio que tenha alguma coisa haver com contexto, interface Local do ejb…

4 Respostas

nbluis

Utilize um atributo @transient.
O container faz commit automático de alterações em objetos managed ao fim da transação.

sudeval

Opa Luis,
vou dar uma olhada sobre o @transiet
a utilizacao de tal atributo seria no metodo ou classe?

t+

_

Pelo o que eu entendi a sua entidade Consolidacao tem um atributo total, certo?

Se sim, é no atributo total da classe Consolidacao que você deve anotar com a anotação @Transient.

[]'s

sudeval

ae pessoal essa dica do Transiet foi bastante util quando eu nao queria persistir tal valor/campo do objeto…

agora estou com um problema similar a esse anterior, em que eu tenho um Objeto/Entidade em que ao obter do banco (usando entityManager / JBOss ) e alterado um campo nele, automaticamente eh persistido, so que eu queria que ele so fosse persistido quando eu fizesse uma confirmação. (um merge() do entityManager por exemplo )

eu tenho um OBjeto

Projeto {

// que tem uma Lista de Recursos

List recursos;

}

e quando eu adiciono recurso a esse projeto automaticamente ele eh salvo  !

alguma dica?

Criado 14 de março de 2008
Ultima resposta 24 de jun. de 2008
Respostas 4
Participantes 3