Fórum Persistir objeto e alterar outro com Hibernate #407701

16/09/2011

0

Fala moçada me pintou um duvida com persistência no hibernate
eu tenho o objeto carga e o objeto invoice, um objeto carga e composto por uma ou varias invoice, e uma invoice pertece em determinado tempo a uma carga, meu problema é que eu crio a invoice antes de criar a carga, em um processo bem anterior, e só depois no momento de consolidar a carga é que crio o obejto carga para persistir...
se os dois fossem criado no mesmo momento eu faria assim
class invoice{//...
@JoinColumn(name = "CARGA_ID", nullable = true)	@ManyToOne(fetch = FetchType.LAZY)	@Label("lblCarga")	private Carga carga;

}
class Carga{   //...  @OneToMany(mappedBy = "carga", fetch = FetchType.LAZY)	@Cascade(value={CascadeType.ALL,CascadeType.DELETE_ORPHAN})	@OnDelete(action=OnDeleteAction.CASCADE)	private List<Invoice> invoice;}


Bom, isso funcionaria perfeitamente se eu fosse cria os objetos no mesmo tempo  persistindo assim:
class persitir{
void inicializar(){carga =  new Carga();carga.setInvoice(new ArrayList<Invoice>());}
//meu problemapublic String salvar(){

           try{                //ele tenta salvar novas invoices e dar pau pq as invoices que seleciono já estão persistidas                cadastrarFacade.salvarCarga(this.carga)                                }catch(exception e){                    e.pri...                    return null;

                    }

            return Constantes.SALVAR;}
}


alguma solucao para isso?
Wisley Souza

Wisley Souza

Responder

Posts

16/09/2011

Wisley Souza

ninguém???
Responder

Gostei + 0

16/09/2011

Davi Costa

Acho que se vc inserir a carga e em um segundo momento, logo em seguida atualiza com a carga com as invoice.
A não ser que vc alterasse seu modelo e mantenha esse relacionameto em uma tabela a parte.

att Davi
Responder

Gostei + 0

16/09/2011

Wisley Souza

já estou fazendo isso:

facadeSalavar(carga)
for(Invoice item : lista){     item.setCarga(thisCarga);     facadeAlterarInvoice(item);}



mas não acho isso pratico, estou desmembrando a parada que faz parte uma da outra;

algum solução mais elegante ou inteligente?
Responder

Gostei + 0

17/09/2011

Luciano Martins

qual a sua necessidade do objeto INVOICE precisar saber do objeto CARGA? pq pensei no seguinte de usar o relacionamento unidimensional ou seja, só o objeto CARGA terá referências do INVOICE, daí o resto é contigo...pense nisso!!
Responder

Gostei + 0

19/09/2011

Wisley Souza

uma carga tem uma ou muitas invoices, entendeu? por isso a relação deve ficar em invoice... pelo jeito e uma batalha perdida ehhe
Responder

Gostei + 0

19/09/2011

Luciano Martins

td bem, mas INVOICE num tem nada pra saber da CARGA saka? por isso fosse vc mudaria pra relacionamento UNIDIMENSIONAL, seilá!!
Responder

Gostei + 0

27/09/2011

Dyego Carmo

Deu certo ?
Se funcionou... poderia fechar o chamado ?

Valeu !
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar