| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/03/2008 14:28:57
|
sudeval
JavaGuru
![[Avatar]](/images/avatar/b555f4a2901228cc826327079761e696.png)
Membro desde: 08/06/2005 09:48:30
Mensagens: 213
Localização: Fortaleza/CE
Offline
|
estou com um pequeno probleminha, mas creio que seja algo simples para muitos...
tenho uma classe :
@Stateless
public class RelatorioEstatisticoBusiness implements
RelatorioEstatisticoBusinessLocal, RelatorioEstatisticoBusinessRemote {
@PersistenceContext(name="ReoPU")
private EntityManager em;
@Override
public List<Programa> gerarRelatorioEstatistico(UnidadeAdministrativa admin,Cidade cidade) {
// acoes...
}
}
caso eu faça em gerarRelatorioEstatistico algo do tipo
public List<Programa> gerarRelatorioEstatistico(UnidadeAdministrativa admin,Cidade cidade) {
List<Consolidacao> consolidacoes = obterConsolidacoes(admin,cidade); // retorna uma lista , obtidas atraves de EntityManager.createQuery()
// por ex.
for(Consolidacao consolidacao : consolidacoes) {
consolidacao.setTotal(1000); // so para mostrar mesmo, se eu fizer isso aqui,ele atualiza no banco!
}
}
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...
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/03/2008 16:37:45
|
nbluis
GUJ Master
![[Avatar]](/images/avatar/f0682320ccbbb1f1fb1e795de5e5639a.jpg)
Membro desde: 27/05/2006 01:31:51
Mensagens: 1531
Localização: Porto Alegre - RS
Offline
|
Utilize um atributo @transient.
O container faz commit automático de alterações em objetos managed ao fim da transação.
|
Luis Eduardo Bohrer
Any fool can write code that a computer can understand. Good programmers write code that humans can understand. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/03/2008 22:16:49
|
sudeval
JavaGuru
![[Avatar]](/images/avatar/b555f4a2901228cc826327079761e696.png)
Membro desde: 08/06/2005 09:48:30
Mensagens: 213
Localização: Fortaleza/CE
Offline
|
Opa Luis,
vou dar uma olhada sobre o @transiet
a utilizacao de tal atributo seria no metodo ou classe?
t+
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/03/2008 11:48:01
|
_sic_
JavaChild
Membro desde: 06/05/2005 16:09:26
Mensagens: 135
Offline
|
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
|
"Não há nada que seja maior evidência de insanidade do que fazer a mesma coisa dia após dia e esperar resultados diferentes."
Einstein |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/06/2008 10:42:29
|
sudeval
JavaGuru
![[Avatar]](/images/avatar/b555f4a2901228cc826327079761e696.png)
Membro desde: 08/06/2005 09:48:30
Mensagens: 213
Localização: Fortaleza/CE
Offline
|
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<Recurso> recursos;
}
e quando eu adiciono recurso a esse projeto automaticamente ele eh salvo !
alguma dica?
|
|
|
 |
|
|