Cmp x cmr - urgente

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.

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:

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

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

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

por exemplo:

public abstract void setItens(Collection itens);

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