Relacionamento Entity Bean CMP

Ola pessoal.

galera to com um tremendo problemao…

eu tenho um entity Amostra que se relaciona (1-1, unidirecional ) com recipiente,estocagem,navio e produto.

ele ja ta listando tudo blz, mas o problema eh na hora de inserir uma nova amostra…
o que eu devo passar ao create de amostra para poder inserir??
pq Amostra possui campos relacionados como farei isso??

grato
Reinaldo Nunes Junior

Supondo que:

  1. Vc mapeou (no tipo escolhido de persistencia ) as chaves das entidades envolvidas no relacionamento.
  2. Os outros objetos que se relacionam são Entity Bean’s CMP

Voce pode ter um create que recebe as chaves primarias dos objetos do relacionamento:

public java.lang.String ejbCreate(String pk, String pkRecipiente, String pkEstocagem, String pkNavio, pkProduto) throws javax.ejb.CreateException { setPk(pk); setPkRecipiente(pkRecipiente); ... }

O create tambem pode receber os objetos que representam os Entity Bean’s:

public java.lang.String ejbCreate(String pk, RecipienteData recipiente, EstocagemData estocagem, NavioData navio, ProdutoData produto) throws javax.ejb.CreateException { setPk(pk); setPkRecipiente(recipiente.getPk()); ... }

Mas acho que seria uma boa você dar uma olhadinha nos J2EE Patterns do Sun, principalmente no Composite Entity :wink:

PS.: se alguém tiver outra idéia, também quero saber!! :slight_smile:

Eu entendi o que vc colocou.
o porem eh que quando criei os entitys beans nao criei com FK
ai quando vc faz o relacionamento ( no jbuilder ele cria um campo la referente ao relacionamento e vc diz quais chaves se relacionam)

entao no meu ejbCreate de amostra, o setProduto o setRecipiente …

recebem como parametro a interface local ejb.Produto, ejb.Recipiente …

entao será que pra eu inserir uma nova amostra eu tenho que alem de passar os parametros referentes aos campos de amostra, ter q passar a interface local dos entitys relacionados?
tipo: Recipiente = RecipienteHome.findByPrimaryKey(pk)

será que he isso??