| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/05/2003 13:52:08
|
mindu
JavaGuru
![[Avatar]](/images/avatar/c9000a484066eb3a5300d.gif)
Membro desde: 07/04/2003 14:17:54
Mensagens: 212
Localização: Bauru / SP
Offline
|
Pessoal,
Como que funciona os relacionamentos entre beans de entidade usando CMP ?
Tentei fazer um modelo seguindo o exemplo do tutorial da sun, no exemplo do RosteApp (relacionamentos dos Beans Team, Player e League), mas nao tive muito sucesso.
por exemplo:
No meu banco eu tenho as tabelas Cidade e Estado.
Uma cidade só poder pertecencer a um Estado e um Estado pode ter várias Cidades.
Na minha aplicação de teste eu tenho um Bean Cidade, um Bean Estado e suas respectivas Interfaces Local e LocalHome, um Session Bean para gerenciamento do Entity Beans e o Cliente acessando o SessionBean.
Até aí beleza... tudo funcionando..
Agora gostaria de saber quais e como deve implementar os métodos para relacionamentos.
por exemplo, para que um determinado metodo, por exemplo: getCidadesDoEstado(uf), me traga dos a cidades pertencentes aquele estado (uf).
Vi também que no deploytool vc define os Beans que vão ter os relacionamentos, os tipos de relacionamento(1:* e etc) e o tipo de retorno (Collection ...).
Acredito que meu problema é em relação aos métodos, pois no teste que eu fiz (baseado no exemplo da sun) ele sempre me retornava vazio.
Alguém tem alguma dica ou exemplo (sem ser o do tutorial da sun) ?
agradeço...
mindu
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/05/2003 15:05:44
|
Alexandre
JavaEvangelist
![[Avatar]](/images/avatar/3416a75f4cea9109507cacd8e2f2aefc.jpg)
Membro desde: 05/09/2002 23:25:11
Mensagens: 431
Localização: Sydney - Australia
Offline
|
Pra comecar, no ejb-jar.xml, vc define os relacionamentos,
vc deve definir os metodos de acesso de relecionamento nas interfaces(o ideal e, qnd vc trabalha com um session bean de fachada, implementar os entity beans com interfaces locais), e o nome desses metodos deve ser o mesmo do nome do campo de relacionamento definido no ejb-jar.xml.
No ejb-jar.xml
Nas interfaces tem que definir metodos de acordo com os nomes do campo de relacionamento:
Se vc quiser acrescentar outros tipos de metodos de busca, como achar as cidades de um determinado estado, vc deve declarar metodos find no ejb-jar.xml, acrescentando na declaracao do entity bean:
ja que vc esta trabalhando com um session bean vc deve implementar os metodos que o cliente usarao, os metodos devem ser implementados a partir dos metodos declarados nas interfaces dos entity beans...
e isso...
qq duvida e so postar...
[]`s
Alexandre Martins.
|
amartinsn [at] gmail.com
http://flickr.com/photos/alexmartins
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/05/2003 15:50:29
|
mindu
JavaGuru
![[Avatar]](/images/avatar/c9000a484066eb3a5300d.gif)
Membro desde: 07/04/2003 14:17:54
Mensagens: 212
Localização: Bauru / SP
Offline
|
Alexandre, não estou editando os xml diretamente, estou usando o deploytool que vem no j2sdkee, mas deu para ter uma noção do que vc esta querendo dizer.
Acho que consegui chegar até aí onde vc falou.
Veja:
Seguindo o exemplo que citei eu tenho:
- CidadeBean
metodo: LocalEstado getEst();
setEst(LocalEstado est);
-LocalCidad
metodo: public LocalEstado getEst();
...
- EstadoBean
metodo: Collection getCid();
setCid(Collection cid);
- LocaEstado
metodo: public Collection getCid();
...
no deploytool eu defino o relacionamento entre Cidade e Estado
----------------------------------------------------------------------------------------------------
--- Bean A ------------------------------------------------------ Bean B ---
EstadoBean ------------------------ 1:* ---------------------- CidadeBean
field referencing Bean B: cid --------------------------------- field referencing Bean A: est
field type: Collection
----------------------------------------------------------------------------------------------------
o SessionBean bem acessa esses metodos Locais do EntityBean.
algo como:
LocalEstado localEstado = localEstadoHome.findByPrimaryKey(uf);
Collection c = localEstado.getCid();
o problema é que esse metodo não me retorna nada.
Fiz esse exemplo baseado no exemplo do tutorial da sun, só que algo mais simples para fim de entendimento, mas não funciona.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/06/2006 14:48:10
|
mefmachine
Smalltalk
Membro desde: 14/06/2006 08:52:13
Mensagens: 3
Offline
|
Boa tarde Amigo, eu fiz algo bem parecido com isso, fiz acessar um entity bean acessar outro por uma interface local, me mande os ccodigos pra mim dar uma olhada. matheusefranco@yahoo.com.br . Flw
|
|
|
 |
|
|
|
|