Cmp x cmr - urgente

5 respostas
M

Olá a todos.

Estou com uma dúvida quanto aos relacionamentos cmr:

Por exemplo, no relacionamento:

Pedidos (1) - (*) Itens
que caracteriza 1-n, tenho uma cmr ‘pedidos’ (Collection) no CMP Pedidos que contém todos os seus itens.
Tenho duas dúvidas:
-Como poderei excluir os itens de Pedidos através da Collection? Poderei usar pedidos.clear() ?
-Qual a melhor maneira de alterar um item de pedido através da Collection? Estava pensando em excluir todos e incluir a Collection atualizada mas o overhead é muito grande.

Obrigado a todos.

mtolentino.

5 Respostas

M

opa, acho q teu problema é com qual collection usar então… bem, para excluir todos os items da lista, eu simplesmente atribuiria null a lista ou faria referencia a uma nova lista… os objetos serão coletados pelo GC…, ja pra vc pesquisar um item na lista e inserir e remover de forma rapida, acredito q a melhor opção seria LinkedList :slight_smile:

M

O problema é que não posso atribuir null a um atributo de relacionamento (cmr), o container reclama dessa atribuição.
Sobre o LinkedList, irei pesquisar.
Obrigado,

mtolentino

M

outra coisa, se eu der items.clear(), o container apenas atribui NULL à chave estrangeira de items. Não remove os registros :frowning: Alguma sugestão?

Att,

mtolentino

Z

Cara se vc estiver usando cmr e quiser apagar o pedido e consequentemente todos os itens relacionados à ele, é so definir o relationship como cascade-delete no descriptor,assim quando o pedido for apagado dando um remove no bean todos os itens serão apagados autoamaticamente, agora se vc quiser apagar só os itens acho que um clear na collection serve

A

por exemplo:

public abstract void setItens(Collection itens);

pra voce limpar isso voce pode passar como argumento a constante java.util.Collection.EMPTY_LIST

Criado 25 de novembro de 2004
Ultima resposta 1 de dez. de 2004
Respostas 5
Participantes 4